-1

I am trying to create a random sampling map of an ocean area. To do this, I would like to create cells that are 1' x 1' in size (one minute by one minute in DMS). My map is using WGS 1984 Web Mercator as the coordinate system. Whenever I go into the Fishnet tool, it asks for cell size, but this appears to be in meters.

One minute of latitude is supposedly 6,068 feet (1.15 miles) which is about 1849.526 m and one minute of longitude is 4,800 feet or about 1463.04 m.

The issue is that this projects a straight solid grid onto the map, which when I compare it to a graticule in the layout divided into 1' ticks, these boxes do not line up. I am completely okay with having not perfectly straight boxes as I am working with a large area and am expecting curvature.

The graticule would be fine to use as a grid system but I will later be stratifying the map and need to export cell data, which is why I am trying to use Fishnet.

2
  • Are you using ArcGIS Pro or ArcMap? Have you tried densifying your fishnet?
    – PolyGeo
    Commented May 27, 2022 at 20:25
  • You can't make a one minute grid in Web Mercator. If you care about distance, you shouldn't use Web Mercator at all, because the "meters" in Web Mercator aren't meters. It's quite possible to generate an equal area fishnet of polyons in WGS84 degrees with ArcMap or Pro, but you need to use the geodesic measurement tools from the Projection Engine (exposed as arcpy.PointGeometry accessor functions) to iteratively derive the area of the spheroidal trapezoids in each row of fixed-width polygons to determine height).
    – Vince
    Commented May 27, 2022 at 20:26

1 Answer 1

0

I drawn big rectangle in DMS system:

enter image description here

and computed small squares (see script) inside it:

W,H = 0.016666666666666666,0.016666666666666666

and this is zoom to one of the pages:

enter image description here

Script:

import numpy as np
inExtent = arcpy.GetParameterAsText(0)
outPages = 'in_memory/pgons'
W,H = 0.016666666666666666,0.016666666666666666
arcpy.management.CopyFeatures(inExtent, outPages) #precaution if extent is wrong
## fishnet parameters
d = arcpy.Describe(outPages)
SR = d.spatialReference
ext = d.extent
toX,toY = ext.XMax,ext.YMax
x = np.arange(ext.XMin, toX, W, dtype=float)
y = np.arange(ext.YMin, toY, H, dtype=float)
fromX,fromY = x[-1]+ W, y[-1]+ H
mg = np.meshgrid(x, y)
X = np.array([0,0,W,W])
Y = np.array([0,H,H,0])
dX,dY = (fromX - toX)/2, (fromY - toY)/2
pgons = []
for x,y in np.nditer(mg):
    arr = arcpy.Array([arcpy.Point(x,y) for x,y in zip(X+x-dX,Y+y-dY)])
    pgons.append(arcpy.Polygon(arr,SR))
arcpy.CopyFeatures_management(pgons,'Feature calss of your choice')

I used script because I have it handy, but your can create XY to line tool to create set of vertical and horizontal lines (use Excel?) and make required size squares from them.

Note: Geodetic Densify tool made no visual difference at page level.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.