Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Single process GIS support #41

Open
2 tasks
etatara opened this issue Jul 31, 2023 · 0 comments
Open
2 tasks

Single process GIS support #41

etatara opened this issue Jul 31, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@etatara
Copy link
Member

etatara commented Jul 31, 2023

Provide support for GIS on a single process, in a way that is similar to the RepastS Geography projection. Single-process GIS will come with the caveat that the Geography won't automatically move agents across process and should only be used on a 0-rank model.

At minimum, this should include:

  • Geography projection or container
  • Add / move / remove agent - geography pairs to the geography
  • Get agent geometry from Geography
  • Spatial index in geography for spatial queries of objects within bounding box
  • Coordinate Reference System (CRS) support in Geography
  • Shapefile loading and/or agent-factory from shapefile feature data

Python packages for implementation:

  • Shapely - provides JTS-style geometry classes (Point, Line, Polygon) and spatial functions like intersect, distance, etc.

  • fiona - Shapefile loading in a way that supports generating Shapely geometries

  • pyproj - CRS projection types and transforms

  • rtree - spatial indexing

  • GeoPy for geodetic (distance) calculations

  • RasterIO for read/write raster data

  • U. of C. spatial data group suggested hierarchical spatial data formats: "h3", "s2" -- https://h3geo.org/

  • GeoPandas provides a lot of the functionality we had in GeoTools (I/O, space predicates, CRS, etc), however the data are stored in a geo dataframe (pandas) and we suspect not suitable for frequent inserts/deletions of agents. Since the pandas dataframes leverage numpy and C++ under the hood for speed, we might be able to use the dataframe as the space’s agent-geometry mapping – assuming that’s compatible with the repast4py projections.

  • Include the geography.py and tests developed for ATEAM

  • Consider sub pip install to keep dependencies of core repast4py

@etatara etatara self-assigned this Jul 31, 2023
@etatara etatara added the enhancement New feature or request label Jul 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant