Skip to main content

Integration of rHEALPixDGGS and Pandas/GeoPandas

Project description

rHP-Pandas

Package rhppandas intends to recreate for rHEALPix what h3pandas, developed by Daniel Jahn (https://github.com/DahnJ/H3-Pandas), does for h3-py, the Python binding for Uber's H3 DGGS. It provides a bridge between package rhealpixdggs and the dataframes used by pandas and geopandas.

Comments, bug reports and suggestions are all welcome.

[!IMPORTANT] This a work in progress. Most of the API outlined by h3pandas has been implemented but its use in production remains limited. The package comes with some tests but we make no claims of completeness regarding those.

In other words: the package in its current form is mostly meant for developers, or maybe for experienced end users.

Conda Environment

Use yaml file environment.yml to create a conda environment for basic use if you'd like to give the package a spin.

Adding yaml file environment-dev.yml to your conda environment will add the packages you need to run the automated tests.

[!NOTE] The implementations of linetrace and cell_ring / k_ring in the backend remain incomplete. They work for well-behaved cases. But linetrace may fail to produce correct results if a line segment intersects the boundary of a polar cap cell, while cell_ring / k_ring cannot handle situations directly involving a corner of the dggs cube. Otherwise, development of the wrapper API within rhealpixdggs happened in tandem with rhppandas and currently matches what h3pandas uses from h3-py.

Usage Examples

Using a basic dataframe with lat/lng coordinates:

> from rhppandas import rhppandas
> import pandas as pd
>
> basic_dataframe = pd.DataFrame({"lat": [50, 51], "lng": [14, 15]})
> basic_dataframe
       lat  lng
    0   50   14
    1   51   15
  • Add rhealpixdggs cell indices as the first column in the dataframe:
> geo2rhp = basic_dataframe.rhp.geo_to_rhp(9)
> geo2rhp
               lat  lng
    rhp_09              
    N216055611   50   14
    N208542111   51   15 
  • Turn DGGS cell indices into points and add them in the geometry column:
> rhp2geo = geo2rhp.rhp.rhp_to_geo()
> rhp2geo
                lat  lng                   geometry
    rhp_09                                         
    N216055611   50   14  POINT (14.00085 50.00206)
    N208542111   51   15  POINT (14.99814 51.00185)
  • Add cell boundaries as the geometry column:
> rhp2geoboundary = geo2rhp.rhp.rhp_to_geo_boundary()
> rhp2geoboundary
                lat  lng                                           geometry
    rhp_09                                                                 
    N216055611   50   14  POLYGON ((13.99625 50.00459, 14.0017 50.00459,...
    N208542111   51   15  POLYGON ((14.99349 51.00438, 14.99907 51.00438...
  • Add a colum with cell resolutions to the dataframe:
> withresolution = geo2rhp.rhp.rhp_get_resolution()
> withresolution
                lat  lng  rhp_resolution
    rhp_09                              
    N216055611   50   14               9
    N208542111   51   15               9
  • Add a column with the parent cell at resolution 0:
> withbasecell = geo2rhp.rhp.rhp_get_base_cell()
> withbasecell
                lat  lng rhp_base_cell
    rhp_09                            
    N216055611   50   14             N
    N208542111   51   15             N
  • Add a column with the parent cell indices at resolution 5:
> withparent = geo2rhp.rhp.rhp_to_parent(5)
> withparent
                lat  lng  rhp_05
    rhp_09                      
    N216055611   50   14  N21605
    N208542111   51   15  N20854
  • Add a column with the cell area:
> withcellarea = geo2rhp.rhp.cell_area()
> withcellarea
                lat  lng  rhp_cell_area
    rhp_09                             
    N216055611   50   14       0.258798
    N208542111   51   15       0.258798

Running Tests

rhppandas uses pytest as its test framework. Make sure that your environment includes both environment.yml and environment-dev.yml and is activated. Then type pytest in a shell with the active conda environment.

Typing pytest --cov will run the tests and print some info on test coverage of the code base.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rhppandas-0.2.0.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rhppandas-0.2.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file rhppandas-0.2.0.tar.gz.

File metadata

  • Download URL: rhppandas-0.2.0.tar.gz
  • Upload date:
  • Size: 25.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for rhppandas-0.2.0.tar.gz
Algorithm Hash digest
SHA256 915f3f5944f1437f3d86fd812654a78ad2873330abcad14be4eeba7e7f70c8a5
MD5 790b0088fc21e0b5ddc9f9be80003569
BLAKE2b-256 d446e5c8d3134316a9961dd3a74f9a5bcdfe07270748783583aa828184c4b637

See more details on using hashes here.

File details

Details for the file rhppandas-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: rhppandas-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for rhppandas-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 81a7b0fb63fa9dc7045d908f45f2a3cb1fc8871a2624cdabc31d3ec69e1ea808
MD5 c7c2609880fa8d5812d68b1962970e90
BLAKE2b-256 b9ee3d2df304dced0fc69fffbffeb86d43069221c28b2fd7019d326c38803e49

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page