I have a project on my desk to classify an elevation model using different elevation breaks for each polygon in the area of interest.
In pseudo code:
FOR each polygon IN layer:
CREATE_MASK FROM this polygon
CLASSIFY elevmod WITH this polygon's LOOKUP_TABLE
SAVE_AS elevmod_classified_this_polygonID
MERGE elevmod_classified*
CONVERT from 16bit float to 256 index colour palette
What is the most efficient way to do this?
The workflow I have now is wasteful of processing time and storage. Each classify step creates a new raster file for every polygon, and then all are combined into one at the end. The source raster is 650mb compressed and about 30 zone polygons (so 30 times some portion of 650mb for extra storage). This seems rather silly since I can classify a whole raster at run-time in a second using the standard symbology tools.
Plus the elevation breaks for each polygon haven't been finalized, so I'll need to run through this exercise a number of times before everyone is satisfied.
The classification elevation lookup tables resemble the following. Each number is the upper elevation boundary of that class:
polygonID, class1, class2, class3, ...
169, 850, 1100, 1300, 1450
170, 1000, 1250, 1400, 1600
The final classified raster has cell values of 1,2,3,4,5... corresponding to class1, class2, ... Though this too is open for change.
I have Qgis 1.7 and Arcinfo 10 with Spatial Analyst at my disposal (and Arcview3 for that matter).