Generate Grid for New York Harbor

This section provides step-by-step guidance on how to generate a complete grid for New Your Harbor using Grid+1.0. Necessary files for this, including a shoreline file and sample grids, are available to download from this link (New York Harbor Grid).

Step 1: Load overlay file

After opening Grid+1.0, left-mouse-click (LMC) on the Import from a file button in the main toolbar and select Import Overlay in the drop-down menu (Figure 1).

Figure 1. Importing overlay file.


In the pop-up Import Over Layer window, go to the directory where the overlay file is saved the select and open the Shoreline.p2d file. Before the shoreline is displayed, indicating the coordinate system is required. For the New York Harbor, the coordinate system, or projection, is UTM Zone 18 in the Northern Hemisphere (Figure 2).

Figure 2. Loading overlay file.



Grid+1.0 shows the imported shoreline as in Figure 3. To check is the shoreline overlays the correct area in the background map, turn on the background map by clicking the lightbulb icon on its layer.

Figure 3. Imported shoreline.


Step 2: Draw splines

We will generate the grid based on the imported shoreline, starting from the Northern area of the harbor. To zoom in this area, press Alt key, right-mouse-click (RMC) then draw a rectangular covering the focused river branch.

Figure 4. Zooming in the Northern area.


In the main toolbar, LMC the Add a new spline button to activate the drawing mode (Figure 5). The user can also RMC on any layer and select Create New Spline Layer.

Figure 5. Adding a new spline.



Draw the splines along the river banks (line 1 and 2 in Figure 6) and make the first grid section by adding lines 3 and 4. The splines must intersect so that a grid is generatable. Next, set the cursor to selection mode by clicking the Select object button, or us the shortcut key S.

Figure 6. Drawn splines.


It is advisable to save the created splines for later reference. To do this, RMC on the spline layer and select the Export Control Points To... option; In the Save As window, give the splines a name and click Save, as shown in Figure 7.

Figure 7. Saving splines.



Step 3: Create grids

To create a grid based on the constructed splines, select the splines layer then click the Create grid from splines button in the main toolbar. In the pop-up Create Grid from Splines window, give the dimension properties of the grid, including the grid points in I and J direction. Click Ok and the resulting grid is shown (Figure 9).

Figure 8. Creating grids.

Figure 9. Resulting grids.


Step 4: Export/Save grids

After grids have been created, save them using the Export Grid option as shown in Figure 10.

Figure 10. Saving grids.



Step 5: Create next grids

Repeat steps 2-4 to build neighboring grids. The subsequent grids must overlay the previous ones so they can be merged at the later stage (Figure 11). Also, save the new splines.

Figure 11. Building neighboring grids.



Figure 12 shows how to merge grids. First, select the first grid, then click the Select object option and LMC on the first note of the intersection border. Next, hold the Shift key and LMC on the second node of the intersection border, and click the Merge two grids button. Grid+ will create merged grids and place them in a separate layer (Figure 13).

Figure 12. Merging grids.

Figure 13. Merged grids.



Step 6: Create branch grids

The branch grids can be built using the similar steps as for main channel grids. Note that the intersection splines and nodes are overlaid with satisfactory precision so that Grid+ can merge grids without errors.

Figure 14. Creating and connecting branch grids.


Step 7: Generate grids with islands

In conception, there are two methods to deal with this case. The first method involves generating a grid domain which covers the main river, the island and the branches, then the grid cells on the island will be deleted. The advantages of this approach is that it is easy and fast. However, it may result in inexact fitting of the grid borders along the river banks. The second method is to generate a grid domain for the main river and the branch only while the island is ignore. This guarantees a good fitting of the grid borders along the river banks but could be time-consuming and difficult to implement.

In the following steps, we will apply the second method for the rest of the study area. Some principles of this are explained below.

  1. The number of cells along the main river and branch must be maintained from the beginning point to the ending point.
  2. In this case, the shape of the branch is complex (less straight and longer) than the main river. Therefore, it is recommended to generate grid for the branch first then define the number of cells along the main river.
  3. Note the I, J direction at the beginning point.

Figure 15. Identifying grids' location.


To expand the branch grid, the final local cell in Figure 16 must be refined so that there are at least 2 cells that go along the branch in the I/J direction.

Figure 16. Expanding the branch grid.



Follow the steps described in Figure 17 to refine the branch channel.

Figure 17. Refining the branch channel.


Repeat steps 2-4 to create subsequent grids with 2 cross cells and 27 body cells, then connect them with the previous grids.

Figure 18. Creating and connecting grids along branch channel.


Continue the grids generation and connection until the junction. Save the layer as grid06_2.

Figure 19. Saving and removing layers.


Next, generate a grid block sized 30x6, as shown in Figure 20. As large spline blocks may cause uneven distribution of grids, the user can make grids from smaller, separated spline rectangles, or create multiple intersecting spline blocks by adding single splines in the middle of a large block.

Figure 20. Creating a large grid block along the branch channel.


Connect the newly-generated grids to grid06_2 then save them as grid06_3.

Figure 21. Saving branch grids.


Create the grid06_3 from the junction with steps illustrated in Figure 22.

Figure 22. Creating and connecting branch grids.


Step 8: Display IJ cell indices

Check the IJ cell indices of the latest updated grids by RMC on the layer, select Show Labels then select Cell I, J Indices. The I, J Indices are the displayed as in Figure 23.

Figure 23. Displaying I, J indices.



Step 9: Generate grids for the main river branch

The identification of I, J indices is required for the determination of the dimension of the subsequent grid block. Click on the first and the last nodes of the branch to define the number of cells along the main river branch. Delete the cells inside the splines as indicated in Figure 24.

Figure 24. Calculating the number of cells along the main river branch.


Generate a grid block of 115x8 cells, then connect them to grid06_4 and save the new grids as grid06_5 (Figure 25).

Figure 25. Generating the main river grids.


Next, generate a grid block of 18x25 cells, then connect them to grid06_5 and save the new grids as grid07 (Figure 26).

Figure 26. Generating the last grid block.


The complete grids for the New York Harbor is shown in Figure 27.

Figure 27. Completed grids.


Step 10: Orthogonalize grids

The user can orthogonalize a grid either globally or locally. Global orthogonalization is applied for the entire gird while local orthogonalization is only applied for selected grid cells.

To implement global orthogonalization, select the grid layer then click the Orthogonalize grid button in the main toolbar (Figure 28).

Figure 28. Global orthogonalization.


To conduct local orthogonalization, first, the user need to select an area to orthogonalize using the Select object button and the Shift key. Then RMC on the selected grids and select the Orthogonalize Grid Block option (Figure 29).

Figure 29. Local orthogonalization.


Step 11. Viewing orthogonal deviation

RMC on the grid layer, go to Show Properties and select Orthogonal Deviation (Figure 30).

Figure 30. Displaying orthogonal deviation properties.


The average orthogonal deviation of the grids is then shown in Figure 31. The best orthogonal deviation is 0. Based on the orthogonal deviation values, the user can adjust the orthogonality of the grids where necessary.

Figure 31. Viewing orthogonal deviation.


Step 12: Removing in-land cells

Finally, to remove in-land cells/nodes, use the Delete node button in the main toolbar. The user can LMC on the nodes/cells which need removing (Figure 32).

Figure 32. Deleting cells