ArcGIS 10.3.1
Data Sets: Sub-Sahara African grids with resolution varying between ~250m (~260 million cells) to ~1km.
Objective: Using a set of rules... select research site data (~4200 points) based on the grid values at a user-generated point (script)
Objective2: Define an inference space for the user-generated point and estimate crop production (script)
Knowing I needed the inference space, I selected the research sites spatially.
Not knowing the computer power of potential users... I didn't run the analysis in memory ... so the analysis isn't quick. As a result... I was asked to select research sites by table.
Spatial Analysis Description:
Apply rules to grids (generates 0s (don't match criteria) and 1s (match criteria)); Sum grids (for a given cell: 0 (no grids match criteria) to 7 (all grids match criteria)); Convert cell value = 7 to a shapefile; Intersect shapefile with research site points.
Tabular Analysis:
Extract grid values for research site points (ExtractMultiValuesToPoints); Apply rules to grid values (TableSelect); Export to Excel file.
Problem:
Compared the spatial and tabular output at a point. Total points were nearly identical (391 for spatial; 392 for tabular), but the overlap was only ~75% (i.e. 91 spatially-selected points didn't match the tabular analysis - which is - of course - the correct answer.
I didn't dice the rasters into identical sized / oriented cells due to file size considerations. So ArcGIS converted all the rasters to the coarsest resolution (1km) before summing the grids. Presumably this spatial "rounding" is the source of the error.
Possible Solutions:
a) I could dice all the grids to 250m, make them overlap and the mismatches would go away. Depending upon how far off the grids are relative to each other... shifting the cells could introduce significant error.
b) I could also create a set of points from the ~250m centroids (network points) and extract their associated grid values. For a given user-selected point, I would select network points using the tabular analysis described above and spatially identify the research sites that are associated with the selected network points [i.e. convert selected network points back to 250m raster cells, convert cells to shapefile and intersect shapefile with research site points].
As long as the 7 grids aren't aligned there will be mismatch errors. But the increased resolution of this analysis should decrease the number of mismatches.
Also... the productivity data could be extracted to the network points - eliminating the need to distribute productivity grids. But the user would still need the 7 grids to identify the grid values at the user-defined point.
c) Create a new ~250m integer grid from the network points. So each cell would have the 7 associated grid values. Then extract those 7 grid values to the user-identified point... which would eliminate mismatches.
Summary:
I'm leaning towards option "c"... but I'm concerned about efficiency and error generation.
Is point analysis ever preferable to raster analysis? (Predefining the relationship between the 7 grids at a series of points has to be worth some efficiency points.)
Are 7 single-valued grids more efficient to use than a single grid that has 7 values associated with each cell? The latter would likely require some sort of raster look-up function.
How would the raster look-up function analysis compare with the TableSelect analysis (with respect to efficiency)?
If I were to run the analysis in memory - would the above questions become moot?