This repository was archived by the owner on Apr 4, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Core algorithm review
Tim Welch edited this page Aug 10, 2021
·
7 revisions
Given shapefile, outputs a new shapefile and raster
For each vector feature class:
- reproject to 3857 if needed
- if point data, buffer -> output_data feature class
- if polygon data, CopyFeatures(reprojected_data) -> output_data feature class
- add sap field to output_data
- for each feature in output_data
- calculate sap and update feature
- get area of feature - (bracket lower at 10_000 min)
- sap = weight / area (bracket lower at 500 min why?)
- for each row in output_data
- create fishing_lyr in-memory FeatureLayer
- RepairGeometry(fishing_lyr)
- create raster with sap cell value
- add to list of rasters
- merge results into outCellStats - CellStatistics - calculate sum per-cell across entire list of raster rasters
- Clip outCellStats to user-defined clipping bounds
- calculate sap and update feature
- Why reproject to 3857 Web Mercator up-front? Is the varied area of each cell a problem?
- Units are meters, allowing user to specify cell size in meters.
- Web Mercator is ultimately used to display the rasters
- As long as the study area is relatively small (how small?), the difference in area per cell across the extent of that study area will be minimal (how minimal?).
- Why is area set to min of 10_000?
- Why is sap set to min of 500?
- Why is the user-defined clipping bounds needed?
- don't generate all the intermediate rasters, one per feature, use burn-in algorithm
- separate core module that kicks off the actual heatmap jobs, one per processor (local) or one per Lambda
- use MemoryFile if within memory limits
- bucket features and use windowed process to parallelize (or create separate rasters and merge)