Document toolboxDocument toolbox

Round coordinates (gridlatlon)

Description

Rounds a given geocoord according to a grid divided depending on the given latitude and longitude precision (in degrees), or to a uniform grid with a specified number of divisions.

  • Latitude values → -90, 90

  • Longitude values → -180, 180, but as -180 and 180 represent the same point, only 180 is in this grid (see the example below).

Example of divisions in a non-uniform grid:

  • latitude precision = 30 → 6 divisions

    • -90, -60 → -75

    • -60, -30 → -45

    • -30, 0 → -15

    • 0, 30 → 15

    • 30, 60 → 45

    • 60, 90 → 75

  • longitude precision = 90 → 4 divisions

    • -45, 45 → 0

    • 45, 135 → 90

    • 135, 180, -180, -135 → 180

    • -135, -45 → -90

Total grid size = 24

How does it work in the search window?

This operation needs only one argument:

Argument

Data type

Argument

Data type

geocoord mandatory

geocoord

latitude / Grid size mandatory

float / integer

longitude mandatory

float

The data type of the new column is geocoord.


Example

The examples in this article use values in a data table generated from the following CSV file.

If you want to try the example for yourself, download the file and upload it to your domain clicking Data upload in the navigation pane. Name the new table my.upload.sample.data and select Current date as Date parsing type. Learn more about uploading data in Uploading log files.

After receiving the confirmation message, you can access the table from the Finder, selecting my → upload → sample → data. When you upload data from a file, all the information is included in a single column called message. To split the values into different columns, you can use the Split operation. Click Toggle Query Editor in the search window toolbar and paste the following LINQ query to get the column required for these examples:

from my.upload.sample.data
select split(message, ";", 08) as geocoordStrings


We want to represent the strings in the geocoordStrings column in the format :type:value. First, we must transform the strings to data type geocoord.

Step 1: Transform the geocoord strings into data type geocoord

First, we must transform the strings in the geocoordStrings to data type geocoord using the Geocoord (geocoord) operation. Add the geocoordStrings column as the argument. Let's call the new column geocoords.

 

Step 2: Round the geocoord coordinates

Now, create a new column using the Round coordinates operation and adding the geocoords column as the argument. Call the new column roundCoords. For the Grid size argument, select the pencil icon and enter a grid size using the information here.

 

Click Create column and you will see the following result:

How does it work in LINQ?

Use the operator select... as...  and add the operation syntax to create the new column. These are the valid formats of the Round coordinates operation:

  • gridlatlon(geocoord, latitude_float, longitude_float)

  • gridlatlon(geocoord, grid_size_integer)

Example

Copy the following LINQ script and try the above example on the my.upload.sample.data table.

from my.upload.sample.data
select split(message, ";", 19) as geocoordStrings
select geocoord(geocoordStrings) as geocoords
select gridlatlon(geocoords, 30, 90) as roundCoords