How Create Fishnet works

The Create Fishnet tool creates a feature class containing a net of rectangular cells. Creating a fishnet requires three basic sets of information: the spatial extent of the fishnet, the number of rows and columns, and the angle of rotation. There are a variety of ways to specify this information. For example, you may not know the exact number of rows and columns, but you do know that each rectangular cell must be exactly 110 meters by 63 meters and must cover the spatial extent of another feature class.

The tool has 11 parameters, and you should think of these in four distinct groups:

  • The spatial extent of fishnet
  • The number of rows and columns and height and width of each cell in the fishnet
  • The angle of rotation for the fishnet
  • Parameters that define the output feature class name and type (polygons or lines) and an optional point dataset containing centroids of each cell

Note:

The order of the parameters in the tool dialog box is different than the order of the parameters in the Python syntax.

Methods for setting spatial extent

You can set the extent of the fishnet using any of the following methods:

  • Enter an existing dataset in the Template Extent parameter. The extent of this dataset will be used as the extent of the fishnet.
  • Instead of entering an existing dataset in the Template Extent parameter, supply both the minimum and maximum x- and y-coordinates.
  • Enter an origin and opposite corner of the fishnet using the Fishnet Origin Coordinate and Opposite corner of Fishnet parameters.
  • Enter an origin, cell size, and number of rows and columns in the Fishnet Origin Coordinate, Cell Size Width, Cell Size Height, Number of Rows, and Number of Columns parameters, respectively.

Setting number of rows and columns

If you have set the extent of the fishnet using one of the first three methods described above, you will need to set the number of rows and columns. There are four methods to specify the number of rows and columns:

  • Define the cell width and height with the Cell Size Width and Cell Size Height parameters and leave the Number of Rows and Number of Columns parameters empty or set them to 0. When the tool executes, it calculates the number of rows and columns needed to cover the extent of the fishnet.
  • Define the cell width and height as above, but additionally enter the number of rows and columns.
  • Define the number of rows and columns by setting the Number of Rows and Number of Columns parameters, and leave the Cell Size Width and Cell Size Height parameters empty or set them to 0. When the tool executes, it calculates the cell size width and height based on the number of rows and columns and the value of the Opposite corner of Fishnet parameter.
  • Define the number of rows and columns as above, but additionally enter a cell size and width. When using this method, the Opposite corner of Fishnet parameter is ignored (in the tool dialog box, the parameter is unavailable). The opposite corner is calculated when the tool runs.

Angle of rotation

This is the angle between the Y-axis and the line connecting Fishnet Origin Coordinate to the Y-Axis Coordinate point.

To create a rotated fishnet, define the angle of rotation by specifying a Y-Axis Coordinate such that the line from origin to this point creates the desired angle with the North as illustrated below. See the Calculating a value for the y-axis coordinate section below for details.

Determining rotation of fishnet

The following example shows a rotated fishnet constructed with the following parameter values:

  • Fishnet Origin Coordinate = (0, 0)
  • Opposite corner of Fishnet = (6.9, 4)
  • Number of Rows = 3
  • Number of Columns = 4
  • Y-Axis Coordinate = (6.9, 4)

When Create Fishnet is executed, it constructs a non-rotated fishnet first as illustrated below.

Creating the cells

The next step is to rotate the fishnet by 60 degrees clockwise around the origin to obtain the final fishnet.

Fishnet final position

Calculating a value for the y-axis coordinate

If you know the angle of rotation, you can compute a value for the Y-Axis Coordinate parameter as follows:

Assume the fishnet is to be rotated 60 degrees clockwise. From the origin of fishnet, draw a line such that it makes an angle of 60 degrees clockwise from the vertical axis (as shown in the diagram below). Any point on this line can be used as the value for the Y-Axis Coordinate parameter. Use a convenient value for the y-coordinate and calculate the x-coordinate from the relation (assuming the origin is at 0, 0):

Tangent of angle = x-coordinate / y-coordinate

Fishnet Y-Axis point calculation

For example, the angle is 60 degrees. If the y-coordinate is 10, the x-coordinate will be 17.32.

x-coordinate = tan(60) * 10

Output feature class

You can choose to create a line or polygon feature class. If you intend to overlay the fishnet with an existing dataset using tools in the Overlay toolset, choose Polygon for the Geometry Type parameter. If you want a fishnet for display purposes, choose Polyline for the Geometry Type parameter. If you have a large number of cells, creating a fishnet with Polygon will be much slower than creating it with Polyline.

You can also create a point feature class by checking the Create Label Points parameter. The points will be located at the center of each cell. If you just want point output and nothing else, choose Polyline for the Geometry Type parameter (because it is the fastest way to construct a fishnet) and check the Create Label Points parameter. After the tool has finished, delete the output line feature class.