/pydggrid

Python wrapper for Discrete Global Grid (DGG) based on DGGRID

Primary LanguageC++OtherNOASSERTION

Build Status Documentation Status Build status PyPI version

DOI

PyDGGRID

A wrapper for DGGRID in python. Currently based on last DGGRID from Kevin Sahr.

SPyDGGRID

Documentations

[Documentation Status]

Changes

  • 0.0.16

  • DGGRID is updated to version 7.3

  • Some bugs fixed

  • Richard Barnes's dglib class is decomposed in order to upgrade DGGRID

  • 0.0.15

  • Not released

  • DGGRID is updated to version 7.1 (https://github.com/sahrk/DGGRID)

  • Removed Boost Geometry suppert to use GDAL support since main DGGRID library started to use GDAL library

  • Added VCPKG support for windows version

  • Cleaned up setup process

  • 0.0.14

  • Added different system build environments

Installation

Note: The main DGGRID library needs 'GDAL' library to compile. so make sure you have installed GDAL C++ library before installing. To installing GDAL on linux is pretty straightforward. For windows you can use vcpkg to compile and install it. The process of installing and using vcpkg on windows can be found on its github (https://github.com/microsoft/vcpkg/)

  • Install GDAL on linux
sudo add-apt-repository ppa:ubuntugis/ppa && sudo apt-get update
sudo apt-get update
sudo apt-get install gdal-bin
sudo apt-get install libgdal-dev
  • Install GDAL on windows

Prerequisites:

Windows 10, 8.1, 7, Linux, or MacOS
Visual Studio 2015 Update 3 or newer (on Windows)
Git

To get started:

> git clone https://github.com/Microsoft/vcpkg.git
> cd vcpkg

PS> .\bootstrap-vcpkg.bat

then

PS> .\vcpkg integrate install

Install GDAL packages with

PS> .\vcpkg install gdal:x64-windows shapelib::x64-windows

NOTE: The GDAL version must match with your python compiled version. So if you have a x86 python use vcpkg install gdal:x86-windows, othewise use vcpkg install gdal:x64-windows

Then simply use pip to install this library

pip install pydggrid

Build From source

On Unix (Linux, OS X)

  • install GDAL, shapelib
  • clone this repository
  • pip install ./pydggrid

or you can easily call

  • python setup.py install

On Windows

  • You need Build Tools for Visual Studio to be able to compile it from source. so Install it from this link https://visualstudio.microsoft.com/downloads/
  • install GDAL, shapelib
  • clone this repository
  • pip install ./pydggrid

or you can easily call

  • python setup.py install

How To Use In order to use this library use following example. (more updates are comming on documentations section)

#import librarry
import pydggrid as m
#Construct a dggs object
m.dgconstruct()
#getting Q2di index for a (lat,long) point
m.geo_to_q2di(50,50)
#[4, 71, 211]
#getting Q2dd index for a (lat,long) point
m.geo_to_q2dd(50,50)
#[4.0, -0.1427860170187444, 0.7514696738643607]
#getting ProjTri index for a (lat,long) point
m.geo_to_projtri(50,50)
#[3.0, 0.5793988192307712, 0.4993911549756102]`

TODO

  • [ ]Supporting All DGGRID functions
  • [ ]Adding GDAL export Geometry Support
  • [ ]Support GridGeneration using DGGRID

Building the documentation

Documentation for the project is generated using Sphinx. Sphinx has the ability to automatically inspect the signatures and documentation strings in the extension module to generate beautiful documentation in a variety formats. The following command generates HTML-based reference documentation; for other formats please refer to the Sphinx manual:

  • cd pydggrid/docs
  • make html

Run tests

To run all tests for the package call folowing command in package directory

python3 -m unittest discover

License

By using, distributing, or contributing to this project, you agree to the terms and conditions of this license.

Based on Kevin Sahr's DGGRID library (https://discreteglobalgrids.org).

Developed on top of the R package which was developed by Richard Barnes (https://github.com/r-barnes/dggridR/).