Advanced Analysis of Satellite Imagery Using Python: Hong Xu, Kaixi Zhang
Advanced Analysis of Satellite Imagery Using Python: Hong Xu, Kaixi Zhang
Using Python
Hong Xu, Kaixi Zhang
Workshop Outline
Classification
Image
Analyst
Raster
Oriented Imagery Processing
AI / Deep Learning Functions
Full-Motion Video
Charting
Image Server
Map Production
Street Views Ortho Mapping
Spectral Profile
Drone Mapping
Content Stereo
Temporal
Profile
Small Sats
High-Resolution Satellites Seamless
Orthophotos
Drone2Map
DTM Ortho Maker
Generation
Aerial Photos All Major Sensors
Integrated and Massively Scalable
Drones
Data Management
Making Imagery Accessible – Image Management and Dissemination
• Mosaic datasets - optimal data model for managing imagery and rasters
• 20+ satellite data: Landsat, MODIS, Sentinel, etc.
• Reference imagery and maintain metadata
• Define processing to be applied
• Scalable and flexible
• Multidimensional raster
• Supports multidimensional raster analysis
• Image server
• Dynamic Mosaicking
• On-the-fly processing
• Persist large datasets as required
• Scalable
• Server as Image Services, WMS, WCS, KML
Image Analysis
Extracting Information from Imagery
• Python packages
- ArcPy
- ArcPy.ia (Image Analyst)
- ArcGIS API for Python
• Raster
NDVI
band
...
band
Process a Collection of Images
• To discover
- What is the water occurrence rate in past 10 years?
- Did deforestation happen in this area?
- What are the land cover changes?
- What are the pattern and trend?
- Etc.
Workflow of Processing a Collection of Images Using Python
RasterCollection
item Raster
Attribute_1
...
...
Attribute_N
item
Raster Collection Raster
Collection Filter Map Reduce
• Created from
- List of rasters
https://pro.arcgis.com/en/pro-app/help/data/imagery/mosaic-datasets.htm
https://pro.arcgis.com/en/pro-app/help/data/imagery/an-overview-of-multidimensional-raster-data.htm
Filter Raster
Collection Filter Map Reduce
• Filter items by
- Spatial extent
- Time extent
- Geometry
- Where clause and attributes
- Raster properties
Map Raster
Collection Filter Map Reduce
processed_rc = rc.map(MyFunc)
Map Raster
Collection Filter Map Reduce
Classification
Random Tree, Support Vector Machine, Maximum Likelihood, ISO Cluster, Linear Spectral Unmixing.
Analysis functions
TasseledCap, Threshold, HeatIndex, WindChill, Apply and etc.
arcpy.ia.Apply (in_raster, raster_function, {raster_function_arguments})
- more…
• Custom functions
Reduce Raster
Collection Filter Map Reduce
N -> 1
Multidimensional Analysis Raster
Collection Filter Map Reduce
• RasterCollection.mosaic (mosaic_method)
- rc.mosaic(‘LAST’)
- rc.mosaic(‘FIRST’)
• Output formats
- CRF (.crf) : output one item or multiple items as a multidimensional raster
- TIFF (.tif) : Output single item
• Output compression
arcpy.env.compression = "LERC 0.01" # for controlled accuracy
arcpy.env.compression = "LERC 0" # lossless
arcpy.env.compression = " LZ77 75" # lossless
arcpy.env.compression = " JPEG 75" # lossy
• Parallel processing factor
- arcpy.env.parallelprocessingfactor = "6"
- arcpy.env.parallelprocessingfactor = "90%"
Help References
• https://pro.arcgis.com/en/pro-app/arcpy/image-analyst/rastercollection-class.htm
• https://pro.arcgis.com/en/pro-app/arcpy/image-analyst/an-overview-of-the-image-
analyst-functions.htm
• Same capabilities and APIs for ArcGIS for Python will be available in ArcGIS 10.8.1
Understanding Urban Expansion Using Nightlight Imagery