Skip to content

Toolkit to generate Global Area Reference System grids.

License

Notifications You must be signed in to change notification settings

corteva/gars-field

Repository files navigation

gars-field

All Contributors https://pepy.tech/badge/gars_field https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white

Bugs/Questions

Usage

Note

See the module docstrings for more details.

GARSField: determine GARS grids based on bounding box

import geopandas
import shapely.geometry
from gars_field import GARSField


geom_bounds = shapely.geometry.box(minx=-175, miny=-76, maxx=-174, maxy=-75)
garsf = GARSField(geom_bounds)
# 6 deg grids (extension)
grids_6deg = garsf.gars_6deg
# 3 deg grids (extension)
grids_3deg = garsf.gars_3deg
# 1 deg grids (extension)
grids_1deg = garsf.gars_1deg
# 30 min grids
grids_30min = garsf.gars_30min
# 15 min grids
grids_15min = garsf.gars_15min
# 5 min grids
grids_5min = garsf.gars_5min
# 1 min grids (extension)
grids_1min = garsf.gars_1min

# convert to geopandas
geopandas.GeoDataFrame(
    {"gars_id": [str(grid) for grid in field.gars_1min]},
    geometry=[grid.polygon for grid in field.gars_1min],
    crs="EPSG:4326",
)

GARSGrid

Grid cell sizes: 1, 5, 15, 30 minutes

from gars_field import GARSGrid

# from latlon
ggrid = GARSGrid.from_latlon(-89.55, -179.57, resolution=5)

# from GARS ID
ggrid = GARSGrid("001AA23")

# get bounding poly
grid_poly = ggrid.polygon

# get GARS ID
gars_id = str(ggrid)

# UTM CRS EPSG Code
epsg_code = ggrid.utm_epsg

EDGARSGrid

This is the extended degree grid system.

Grid cell sizes: 1, 3, 6 degrees

from gars_field import EDGARSGrid

# from latlon
ggrid = EDGARSGrid.from_latlon(-89.55, -179.57, resolution=3)

# from GARS ID
ggrid = EDGARSGrid("D01AA23")

# get bounding poly
grid_poly = ggrid.polygon

# get GARS ID
gars_id = str(ggrid)

# UTM CRS EPSG Code
epsg_code = ggrid.utm_epsg

GEDGARSGrid

This is the giant extended degree grid system

Grid cell sizes: 30, 60 degrees

from gars_field import GEDGARSGrid

# from latlon
ggrid = GEDGARSGrid.from_latlon(-89.55, -179.57, resolution=3)

# from GARS ID
ggrid = GEDGARSGrid("GD1A")

# get bounding poly
grid_poly = ggrid.polygon

# get GARS ID
gars_id = str(ggrid)

Credits

GARSGrid was inspired by: