Best method to assign raster values to USNG?

226
1
12-16-2020 02:44 PM
ThomasKakatsakis
New Contributor II

I am working with US National Grid (USNG) for the whole United States, containing 1 km by 1km polygons which diverge around UTM boundaries. I need to assign the values of a raster in GRID format which also has a 1 km x 1 km resolution, for each respective USNG square. They do not exactly match up. I have tried several methods, and need to determine the best method to accurately get a representation of the raster value for each polygon. I am looking for a solution in ArcMap or ArcGIS Pro. The methods I have tried are:

Spatial Join - convert the Raster cells into point features, and perform a spatial join with the USNG. Pros/Cons: relies on only the closest raster cell.

Zonal Statistics as Table - Calculate the mean raster value for each zone (which are USNG grids). Pros/Cons: can average several raster cells which overlap the grid square, but not as good for cases when one cell covers the majority of the grid square.

Snap Raster - convert the USNG into a raster format(?), and use Snap Raster to align the two. Or some variation of this, where I am aligning the two layers together. 

Each approach has advantages and limitations. Is there an additional method I have not considered? Do you have any input on how to best achieve the goal of assigning raster values to a grid, for a very large dataset?

Tags (2)
0 Kudos
1 Reply
DavidPike
MVP Frequent Contributor

This issue is mostly just accepted, however one option may be to convert the raster to a polygon (so that each cell becomes a square/quadrilateral feature) retaining the cell value as an attribute .

Then split all the polygons along the grid boundary.

There's many ways to do the next step, but I'd take the normal area (SHAPE_AREA) of a cell and let it be '1' for example.  If a polygon cell is split on the grid boundary by 50%, take the cell value and divide by 2.  I would do this by creating a new float field, and field calculating the new value to be 

cell attribute value * (shape_area / standard shape area)

the last step would be to run a spatial join of each grid cell to the polygon cells, with a merge rule set to sum on the newly calculated value field.

N.B Raster to polygon can be very intensive and unwieldy depending on your extent and cell size.

0 Kudos