In this project, a Python model was fed satellite imagery of three cities in multiple years in order to predict future trends in urbanization. Once it learned to identify both built and unbuilt areas of said cities, it could then categorize them and forecast their trajectories over time. The project looks at three dissimilar cities: Cairo, Dubai and Wuhan. The application of the same model on these cities is deliberate, as it provides more of a testing ground for the hypothesis.
Essentially, the training model is fed a baseline image from the year 2000. The images from 2005, 2010 and 2015 are then compared to the prior image in the series beginning in 2000. Then the model extrapolates future changes or lack thereof in urbanization based on historical patterns. As the actual images from the corresponding years are available, it is possible to validate the results and accurately predict the growth or shrinkage trends for the year 2000. The model uses a convolutional neural network - and the documentation can be found here.
The images are manually processed into monochrome figure-ground images, from which data samples are collected to train the machine. When brought into Python, the images are mapped to their corresponding years and then re-sampled to generate uniform images at a smaller size. The images are then broken down into 32 x 32 pixels and mapped to an array from which uniform square pixels are cropped to act as the samples. This is done from the baseline images (year 0 to 4), and used by the model to classify areas as either urban or non-urban. The cropped pixels are then scaled up, the images are reconstructed and this data is fed back into the model for more training. Using historical trends in the imagery, these cropped pixels are then used to predict sprawl in the corresponding year by identifying individual pixels as either becoming urbanized or remaining as urban or non-urban or becoming urbanization was predicted.