This code is to map artificial surfaces by fusing Landsat-8 imagery and NPP-VIIRS nighttime data.
Arcpy(10.4), Anaconda(2.7, download in https://www.anaconda.com/download/).
Arcpy- os, math, shutil, sys. Anaconda- os, shutil, sys, numpy (1.15.1), skimage (0.14.0), gdal (2.2.2).
- This code has 7 steps. All the steps run with Arcpy environment except the 5th step. The 5th step runs with anaconda environment.
- Put the Landsat-8 imagery into the ‘predata’ file and click run step by step.
- In the 6th step, you need to get the classification thresholds by using the Arcmap(10.4). Change the classification intervals in the code manually. Set the nighttime data DN=0 as the threshold to get the non-artificial surfaces training samples.
- Before running the 7nd step, you need to create the training features manually in Arcmap, they can not create in python automatically.
Add the ‘nonas_trainsample_dissolve.shp’ and ‘as_trainsample_dissolve.shp’ respectively into the training sample manager. Then save these feature classes as ‘merge_trainsample.shp’ in the ‘trainsamples’ file.
- In the ‘result’ file, you will get the final mapping result of artificial surfaces-‘result_artificial_surface.tif’.
Chang Liu, [email protected]
Kang Yang, [email protected]
Phone: (+86)17302560154
School of Geography and Ocean Science, Nanjing University.