developmentseed / developmentseed/juba-classification
classification observations
- Dominant language
- R
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
I just wanted to share my findings so far regarding image classification for household estimation.
### Unsupervised
The results of unsupervised classification don't look promising so far. In the past, I've found that running an unsupervised classification is a good way to gain an understanding of what kind of information can be extracted from an image; the class breaks literally show which signatures can be separated consistently, giving you a good understanding of what kind of legend can realistically be developed for an area. From there, with a lot of categories you can manually merge spectral classes down to information classes or allow some extant data to guide the process, or more commonly you would conduct a supervised classification. That's just for a land-cover map; there are plenty of other reasons to do an unsupervised classification...
Such as our idea that block-level household statistics could sort the spectral categories for us, which may be the case if enough output categories are used and there are enough block-level training examples. What I'm finding with the classifiers I've tried so far, though, is that even 15 categories or so aren't sufficient to start placing the categories that are meaningful to us into separate bins from those we would rather ignore. A lot of the biggest spectral differences occur in the gradient between cover types, shadows, different angled rooftops, etc. There’s no way to really force a classifier to discriminate between, for example, a tan roof and soil, since the spectral difference between them is more subtle than the difference between certain other roof-types facing different directions might be.
Here's an example of K-Means classification. You can see that there are many categories wasted on different soil signatures, shadow, vegetation variation, and the gradients between categories, and that beginning to strip out categories that are clearly dominated by these cover types starts taking out a bunch of rooftops with it.

I got similar though somewhat better results with another algorithm called ISOCLUST, which at least results in much faster processing. Again, our idea is that the data would guide the elimination of less relevant categories (or transform them into background noise), but if superfluous categories seem to combine with the ones we are after then there's no way it would be able to do so.

### Supervised
I finally had some luck by performing a supervised classification of vegetation, soil, and the 7 or so different rooftop materials in the area, which is not particularly sophisticated as a map but which gets us closer to the kind of useful explanatory data we were thinking of. It's possible to discriminate roof material very generally, and certainly possible to pull out built area. The procedure is to divide the image into flood polygons (a form of feature extraction), classify some of the polygons manually, run a pixel based-classification tree based classification, and then assign the mode value of that to the original polygons.

I'm currently attempting to covert a large area of imagery for Idrisi, to see whether it can easily scale to our full area of interest. From what I've tried so far, I suspect that processing will take a while and that I may need to do some more training.
### Forcier data/ imagery
In the meantime, having an example of the kind of spatial data we would expect enables us to start asking whether it seems suitable to our original question. One thing I noticed about the small map shown above is that, in terms of built area, the blocks all look more or less the same, like a lot of the blocks in the imagery and as you would expect in a neighborhood. The problem is that Forcier's data tell us that anywhere between 0 and 20 (actually, up to 103) households may be habitating these similar-looking areas. I'll attach a few examples:



In some cases, it looks like the household count is related to only the large, permanent structures on the block, with additional small temporary structures/ tents counted as part of their communities. In other cases, there's such a mix of shelter types that it's hard to understand the relationship. In most cases where there are large collections of small temporary structures, they blend together as one mass, which would make it difficult to add any additional categorization based on size.
I don't have an answer to these issues, I just wanted to share what I've seen while importing the imagery. It's not that anything has been tested and failed to produce a relationship, it's just hard for me to imagine given the appearance of the imagery inside the blocks they've given us. If it doesn't seem like automated RS techniques produce the kind of data that would be useful for estimating households, or indeed if households don't necessarily bear a relationship to structures in an area... well, how can we spin that? We can definitely make a better map than the example above, it's just that I'm struggling to interpret their counts even by staring at the imagery. Would it be useful to try to clean up (/remove non-exisiting) structures from volunteer-drawn OSM data using RS data, and base analysis on that base? Just trying to think of some extra ideas for when we meet later on.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.