Geospatial Image Processing for Python

Related tags

Geolocationgippy
Overview

GIPPY

https://circleci.com/gh/gipit/gippy.svg?style=svg&circle-token=fb40999b03328dc633a4d654f680eb5e1a6f3a2d

Gippy is a Python library for image processing of geospatial raster data. The core of the library is implemented as a C++ library, libgip, with Python bindings automatically generated with swig. Gippy encapsulates the functionality of GDAL and CImg that automatically handles issues common to geospatial data, such as handling of nodata values and chunking up of very large images by saving chains of functions and only processing the image in pieces upon a read request. In addition to providing a library of image processing functions and algorithms, Gippy can also be used as a simpler interface to GDAL for the opening, creating, reading and writing of geospatial raster files in Python.

See the full documentation.

Authors and Contributors

  • Matthew Hanson
  • Ian Cooke
  • Alireza Jazayeri
**GIPPY**: Geospatial Image Processing for Python

AUTHOR: Matthew Hanson
EMAIL:  [email protected]

Copyright (C) 2015 Applied Geosolutions
EMAIL: [email protected]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • ImportError: libgip.so: cannot open shared object file: No such file or directory

    ImportError: libgip.so: cannot open shared object file: No such file or directory

    This happens on master as well as develop:

    #!/bin/bash
    
    $PYTHON setup.py build
    $PYTHON setup.py install
    
    ls lib/python2.7/site-packages/gippy
    algorithms.py   _algorithms.so  gippy.pyc  __init__.py   libgip.so  test.pyc    version.pyc
    algorithms.pyc  gippy.py        _gippy.so  __init__.pyc  test.py    version.py
    
    Python 2.7.13 |Continuum Analytics, Inc.| (default, Dec 20 2016, 23:09:15) 
    [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    Anaconda is brought to you by Continuum Analytics.
    Please check out: http://continuum.io/thanks and https://anaconda.org
    >>> import numpy
    >>> import potrace
    >>> import gippy
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/vagrant/miniconda2/envs/bfalg/lib/python2.7/site-packages/gippy/__init__.py", line 41, in <module>
        from .gippy import init, DataType, GeoImage, GeoVector, Options
      File "/home/vagrant/miniconda2/envs/bfalg/lib/python2.7/site-packages/gippy/gippy.py", line 30, in <module>
        _gippy = swig_import_helper()
      File "/home/vagrant/miniconda2/envs/bfalg/lib/python2.7/site-packages/gippy/gippy.py", line 26, in swig_import_helper
        _mod = imp.load_module('_gippy', fp, pathname, description)
    ImportError: libgip.so: cannot open shared object file: No such file or directory
    
    opened by benhosmer 15
  • libgip.so: cannot open shared object file

    libgip.so: cannot open shared object file

    I'm attempting to install gippy on my laptop from my (up-to-date) fork of the repo. I've come across this issue with libgip.so before, but I cannot remember the cause. Leaving only the commands and import error

    $ sudo git clean -xfd ; \
      python setup.py build ; \
      sudo python setup.py install ; \
      cd ~ ; \
      python -c "import gippy ; print 'success' "
    
    [[[ snipped compilation and installation output ]]]
    
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/local/lib/python2.7/dist-packages/gippy/__init__.py", line 23, in <module>
        from gippy import *
      File "/usr/local/lib/python2.7/dist-packages/gippy/gippy.py", line 32, in <module>
        _gippy = swig_import_helper()
      File "/usr/local/lib/python2.7/dist-packages/gippy/gippy.py", line 28, in swig_import_helper
        _mod = imp.load_module('_gippy', fp, pathname, description)
    ImportError: libgip.so: cannot open shared object file: No such file or directory
    

    But everything seems to be there

    /usr/local/lib/python2.7/dist-packages/
    ├── gippy
    │   ├── algorithms.py
    │   ├── algorithms.pyc
    │   ├── _algorithms.so
    │   ├── gippy.py
    │   ├── gippy.pyc
    │   ├── _gippy.so
    │   ├── __init__.py
    │   ├── __init__.pyc
    │   ├── libgip.so
    │   ├── tests.py
    │   ├── tests.pyc
    │   ├── _tests.so
    │   ├── version.py
    │   └── version.pyc
    └── gippy-0.3.3.egg-info
        ├── dependency_links.txt
        ├── PKG-INFO
        ├── SOURCES.txt
        └── top_level.txt
    

    below is the build output:

    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/gippy
    copying gippy/version.py -> build/lib.linux-x86_64-2.7/gippy
    copying gippy/__init__.py -> build/lib.linux-x86_64-2.7/gippy
    running build_ext
    building 'gippy/libgip' extension
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/GIP
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/GeoRaster.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoRaster.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/GeoImage.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoImage.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/GeoAlgorithms.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoAlgorithms.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/gip_gdal.cpp -o build/temp.linux-x86_64-2.7/GIP/gip_gdal.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/GeoResource.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoResource.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/GeoSpatialContext.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoSpatialContext.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/GeoVectorResource.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoVectorResource.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/tests.cpp -o build/temp.linux-x86_64-2.7/GIP/tests.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/usr/include/python2.7 -c GIP/GeoImages.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoImages.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    c++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/GIP/GeoRaster.o build/temp.linux-x86_64-2.7/GIP/GeoImage.o build/temp.linux-x86_64-2.7/GIP/GeoAlgorithms.o build/temp.linux-x86_64-2.7/GIP/gip_gdal.o build/temp.linux-x86_64-2.7/GIP/GeoResource.o build/temp.linux-x86_64-2.7/GIP/GeoSpatialContext.o build/temp.linux-x86_64-2.7/GIP/GeoVectorResource.o build/temp.linux-x86_64-2.7/GIP/tests.o build/temp.linux-x86_64-2.7/GIP/GeoImages.o -Lbuild/lib.linux-x86_64-2.7/gippy -o build/lib.linux-x86_64-2.7/gippy/libgip.so
    building 'gippy/_gippy' extension
    swigging gippy/gippy.i to gippy/gippy_wrap.cpp
    swig -python -c++ -w509 -IGIP -o gippy/gippy_wrap.cpp gippy/gippy.i
    creating build/temp.linux-x86_64-2.7/gippy
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/home/icooke/.local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/gdal -I/usr/include/python2.7 -c gippy/gippy_wrap.cpp -o build/temp.linux-x86_64-2.7/gippy/gippy_wrap.o -fPIC -std=c++11 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    gippy/gippy_wrap.cpp: In function ‘PyObject* _wrap_new_GeoImages(PyObject*, PyObject*)’:
    gippy/gippy_wrap.cpp:4765:61: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec);
                                                                 ^
    gippy/gippy_wrap.cpp:28262:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    gippy/gippy_wrap.cpp: In function ‘PyObject* _wrap_new_mapss(PyObject*, PyObject*)’:
    gippy/gippy_wrap.cpp:5295:4: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
        res = SWIG_ConvertPtr(obj,(void**)&p,swig::type_info<map_type>(),0);
        ^
    gippy/gippy_wrap.cpp:11317:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    c++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/gippy/gippy_wrap.o -Lbuild/lib.linux-x86_64-2.7/gippy -lgip -lgdal -lboost_system -lboost_filesystem -lboost_log -lpthread -o build/lib.linux-x86_64-2.7/gippy/_gippy.so
    building 'gippy/_tests' extension
    swigging gippy/tests.i to gippy/tests_wrap.cpp
    swig -python -c++ -w509 -IGIP -o gippy/tests_wrap.cpp gippy/tests.i
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/home/icooke/.local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/gdal -I/usr/include/python2.7 -c gippy/tests_wrap.cpp -o build/temp.linux-x86_64-2.7/gippy/tests_wrap.o -fPIC -std=c++11 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    gippy/tests_wrap.cpp: In function ‘PyObject* _wrap_new_GeoImages(PyObject*, PyObject*)’:
    gippy/tests_wrap.cpp:4758:61: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec);
                                                                 ^
    gippy/tests_wrap.cpp:28243:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    gippy/tests_wrap.cpp: In function ‘PyObject* _wrap_new_mapss(PyObject*, PyObject*)’:
    gippy/tests_wrap.cpp:5288:4: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
        res = SWIG_ConvertPtr(obj,(void**)&p,swig::type_info<map_type>(),0);
        ^
    gippy/tests_wrap.cpp:11298:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    c++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/gippy/tests_wrap.o -Lbuild/lib.linux-x86_64-2.7/gippy -lgip -lgdal -lboost_system -lboost_filesystem -lboost_log -lpthread -o build/lib.linux-x86_64-2.7/gippy/_tests.so
    building 'gippy/_algorithms' extension
    swigging gippy/algorithms.i to gippy/algorithms_wrap.cpp
    swig -python -c++ -w509 -IGIP -o gippy/algorithms_wrap.cpp gippy/algorithms.i
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -IGIP -I/home/icooke/.local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/gdal -I/usr/include/python2.7 -c gippy/algorithms_wrap.cpp -o build/temp.linux-x86_64-2.7/gippy/algorithms_wrap.o -fPIC -std=c++11 -DBOOST_LOG_DYN_LINK
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    gippy/algorithms_wrap.cpp: In function ‘PyObject* _wrap_new_GeoImages(PyObject*, PyObject*)’:
    gippy/algorithms_wrap.cpp:4757:61: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec);
                                                                 ^
    gippy/algorithms_wrap.cpp:28258:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    gippy/algorithms_wrap.cpp: In function ‘PyObject* _wrap_new_mapss(PyObject*, PyObject*)’:
    gippy/algorithms_wrap.cpp:5287:4: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
        res = SWIG_ConvertPtr(obj,(void**)&p,swig::type_info<map_type>(),0);
        ^
    gippy/algorithms_wrap.cpp:11313:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    c++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/gippy/algorithms_wrap.o -Lbuild/lib.linux-x86_64-2.7/gippy -lgip -lgdal -lboost_system -lboost_filesystem -lboost_log -lpthread -o build/lib.linux-x86_64-2.7/gippy/_algorithms.so
    running install
    module <setuptools.extension.Extension instance at 0x7f3ae522d2d8> /usr/local/lib/python2.7/dist-packages/gippy
    module <setuptools.extension.Extension instance at 0x7f3ae37236c8> /usr/local/lib/python2.7/dist-packages/gippy
    module <setuptools.extension.Extension instance at 0x7f3ae3723758> /usr/local/lib/python2.7/dist-packages/gippy
    module <setuptools.extension.Extension instance at 0x7f3ae3723a70> /usr/local/lib/python2.7/dist-packages/gippy
    running build_ext
    running build
    running build_py
    copying gippy/tests.py -> build/lib.linux-x86_64-2.7/gippy
    copying gippy/algorithms.py -> build/lib.linux-x86_64-2.7/gippy
    copying gippy/gippy.py -> build/lib.linux-x86_64-2.7/gippy
    running install_lib
    creating /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/tests.py -> /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/version.py -> /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/__init__.py -> /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/libgip.so -> /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/algorithms.py -> /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/gippy.py -> /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/_algorithms.so -> /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/_gippy.so -> /usr/local/lib/python2.7/dist-packages/gippy
    copying build/lib.linux-x86_64-2.7/gippy/_tests.so -> /usr/local/lib/python2.7/dist-packages/gippy
    byte-compiling /usr/local/lib/python2.7/dist-packages/gippy/tests.py to tests.pyc
    byte-compiling /usr/local/lib/python2.7/dist-packages/gippy/version.py to version.pyc
    byte-compiling /usr/local/lib/python2.7/dist-packages/gippy/__init__.py to __init__.pyc
    byte-compiling /usr/local/lib/python2.7/dist-packages/gippy/algorithms.py to algorithms.pyc
    byte-compiling /usr/local/lib/python2.7/dist-packages/gippy/gippy.py to gippy.pyc
    running install_egg_info
    running egg_info
    creating gippy.egg-info
    writing gippy.egg-info/PKG-INFO
    writing top-level names to gippy.egg-info/top_level.txt
    writing dependency_links to gippy.egg-info/dependency_links.txt
    writing manifest file 'gippy.egg-info/SOURCES.txt'
    reading manifest file 'gippy.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'gippy.egg-info/SOURCES.txt'
    Copying gippy.egg-info to /usr/local/lib/python2.7/dist-packages/gippy-0.3.3.egg-info
    running install_scripts
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "gippy/__init__.py", line 23, in <module>
        from gippy import *
      File "gippy/gippy.py", line 32, in <module>
        _gippy = swig_import_helper()
      File "gippy/gippy.py", line 24, in swig_import_helper
        import _gippy
    ImportError: No module named _gippy
    
    question 
    opened by ircwaves 8
  • Installation problem on Archlinux

    Installation problem on Archlinux

    Hi,

    Installation seems not working on Archlinux :

    $ python2 setup.py install running install running build_ext building 'gippy/libgip' extension creating build creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/GIP gcc -pthread -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fPIC -IGIP -I/usr/lib/python2.7/site-packages/numpy/core/include -I/usr/include -I/usr/include/python2.7 -c GIP/GeoVectorResource.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoVectorResource.o -fPIC -O3 -std=c++11 -Wno-maybe-uninitialized GIP/GeoVectorResource.cpp: Dans le constructeur ‘gip::GeoVectorResource::GeoVectorResource(std::__cxx11::string, std::__cxx11::string)’: GIP/GeoVectorResource.cpp:37:30: erreur : ‘Open’ is not a member of ‘OGRSFDriverRegistrar’ _OGRDataSource.reset(OGRSFDriverRegistrar::Open(filename.c_str()), OGRDataSource::DestroyDataSource); ^~~~~~~~~~~~~~~~~~~~ GIP/GeoVectorResource.cpp:37:91: attention : ‘static void OGRDataSource::DestroyDataSource(OGRDataSource*)’ is deprecated [-Wdeprecated-declarations] .reset(OGRSFDriverRegistrar::Open(filename.c_str()), OGRDataSource::DestroyDataSource); ^~~~~~~~~~~~~~~~~ In file included from GIP/gip/GeoVectorResource.h:28:0, from GIP/GeoVectorResource.cpp:22: /usr/include/ogrsf_frmts.h:245:25: note : declared here static void DestroyDataSource( OGRDataSource * ) OGR_DEPRECATED("Use GDALDataset class instead"); ^~~~~~~~~~~~~~~~~ error: command 'gcc' failed with exit status 1

    I tried with pip before :

    $ pip install gippy Collecting gippy Using cached gippy-0.3.5.tar.gz Building wheels for collected packages: gippy Running setup.py bdist_wheel for gippy ... error Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-_8sgx0ja/gippy/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" bdist_wheel -d /tmp/tmp6edpypnrpip-wheel- --python-tag cp35: running bdist_wheel running build_ext building 'gippy/libgip' extension creating build creating build/temp.linux-x86_64-3.5 creating build/temp.linux-x86_64-3.5/GIP gcc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fPIC -IGIP -I/usr/include/python3.5m -c GIP/tests.cpp -o build/temp.linux-x86_64-3.5/GIP/tests.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK cc1plus: attention : command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ In file included from GIP/gip/GeoImage.h:25:0, from GIP/gip/tests.h:25, from GIP/tests.cpp:23: GIP/gip/GeoResource.h:32:28: erreur fatale : gdal/gdal_priv.h : Aucun fichier ou dossier de ce type #include <gdal/gdal_priv.h> ^ compilation terminée. error: command 'gcc' failed with exit status 1

    Failed building wheel for gippy Running setup.py clean for gippy Failed to build gippy Installing collected packages: gippy Running setup.py install for gippy ... error Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-_8sgx0ja/gippy/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /tmp/pip-wq24jaxn-record/install-record.txt --single-version-externally-managed --compile: running install running build_ext building 'gippy/libgip' extension creating build creating build/temp.linux-x86_64-3.5 creating build/temp.linux-x86_64-3.5/GIP gcc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fPIC -IGIP -I/usr/include/python3.5m -c GIP/tests.cpp -o build/temp.linux-x86_64-3.5/GIP/tests.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK cc1plus: attention : command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ In file included from GIP/gip/GeoImage.h:25:0, from GIP/gip/tests.h:25, from GIP/tests.cpp:23: GIP/gip/GeoResource.h:32:28: erreur fatale : gdal/gdal_priv.h : Aucun fichier ou dossier de ce type #include <gdal/gdal_priv.h> ^ compilation terminée. error: command 'gcc' failed with exit status 1

    ----------------------------------------
    

    Command "/usr/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-_8sgx0ja/gippy/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /tmp/pip-wq24jaxn-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-_8sgx0ja/gippy/

    I have gdal_priv.h on my installation :

    $ locate gdal_priv.h /usr/include/gdal_priv.h $ gdal-config --cflags -I/usr/include

    Any suggestion ?

    Sincerely,

    Sylvain

    opened by kikislater 7
  • Installation does not work.

    Installation does not work.

    Tried:

    sudo apt-get install libgdal1h gdal-bin libgdal-dev g++4.8

    E: Unable to locate package g++4.8 E: Couldn't find any package by regex 'g++4.8'

    Also, within a virtualenv, tried

    pip install gippy -pre

    and got:

    Invalid requirement: '–pre' Traceback (most recent call last): File "/home/ubuntu/venv2/local/lib/python2.7/site-packages/pip/req/req_install.py", line 77, in init req = pkg_resources.Requirement.parse(req) File "/home/ubuntu/venv2/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/init.py", line 3036, in parse req, = parse_requirements(s) File "/home/ubuntu/venv2/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/init.py", line 2967, in parse_requirements raise RequirementParseError("Missing distribution spec", line) RequirementParseError: Missing distribution spec –pre

    opened by kstamatiou 7
  • fix(chunks): using numchunks didn't cover image

    fix(chunks): using numchunks didn't cover image

    I believe this is straight forward -- found in 0.3.x branch, and also exists in mainline development.

    I hope the expansion/tweaks to the chunking test make sense to cover the cases. The previous test_GeoResource.test_chunking didn't actually assert about the final chunk.

    :+1: to @justinfisk for the help in sorting this out on the 0.3.x branch.

    opened by ircwaves 5
  • error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    I'm getting this error when trying to install gippy: command 'x86_64-linux-gnu-gcc' failed with exit status 1, after running sudo python setup.py install

    running install DEBUG:setup.py:_install finalize_options DEBUG:setup.py:_install run running build_ext DEBUG:setup.py:_build_ext run building 'gippy/libgip' extension x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -fPIC -IGIP -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/gdal -I/usr/include/python2.7 -c GIP/GeoAlgorithms.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoAlgorithms.o -fPIC -O3 -std=c++11 -Wno-maybe-uninitialized x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -fPIC -IGIP -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/gdal -I/usr/include/python2.7 -c GIP/GeoVectorResource.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoVectorResource.o -fPIC -O3 -std=c++11 -Wno-maybe-uninitialized GIP/GeoVectorResource.cpp: In constructor 'gip::GeoVectorResource::GeoVectorResource(std::string, std::string)': GIP/GeoVectorResource.cpp:37:30: error: 'Open' is not a member of 'OGRSFDriverRegistrar' _OGRDataSource.reset(OGRSFDriverRegistrar::Open(filename.c_str()), OGRDataSource::DestroyDataSource); ^ GIP/GeoVectorResource.cpp:37:91: warning: 'static void OGRDataSource::DestroyDataSource(OGRDataSource*)' is deprecated (declared at /usr/include/gdal/ogrsf_frmts.h:245) [-Wdeprecated-declarations] _OGRDataSource.reset(OGRSFDriverRegistrar::Open(filename.c_str()), OGRDataSource::DestroyDataSource); ^ GIP/GeoVectorResource.cpp: In member function 'gip::BoundingBox gip::GeoVectorResource::extent() const': GIP/GeoVectorResource.cpp:99:38: warning: ignoring return value of function declared with attribute warn_unused_result [-Wunused-result] _Layer->GetExtent(&ext, true); ^ error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    Could anyone help me to resolve this?

    opened by yurithefury 4
  • How do I read a GeoImage into integral typed numpy arrays?

    How do I read a GeoImage into integral typed numpy arrays?

    This is another question related to migrating gips from gippy 0.3 to 1.0.

    I've instantiated GeoImages using an existing file in a couple different ways, sometimes in a form that lets me specify a dtype, sometimes not. But regardless of the value of eg image.type().string(), or image[0].type().string(), the numpy array returned by image.read() is always float64. I can work around that by eg image.read().astype('uint16'), but that results in two unneeded type conversions, which hurts performance.

    The band I need to process is the 16-bit QA band for landsat C1 data. float64 is obviously a type error if you try to do bit-fiddling on it (>> and & in our case).

    opened by ra-tolson 3
  • python setup.py error

    python setup.py error

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "gippy/__init__.py", line 23, in <module>
        from gippy import *
      File "gippy/gippy.py", line 30, in <module>
        _gippy = swig_import_helper()
      File "gippy/gippy.py", line 22, in swig_import_helper
        import _gippy
    ImportError: No module named _gippy
    
    bug 
    opened by scisco 3
  • GIP/gip/GeoResource.h:32:28: fatal error: gdal/gdal_priv.h: No such file or directory

    GIP/gip/GeoResource.h:32:28: fatal error: gdal/gdal_priv.h: No such file or directory

    I am using GDAL version 1.11.2 and gdal_priv.h is located at ./gdal1.11.2/gcore/gdal_priv.h. When I compile gippy, I get this compiler error:

    ~/dev/gis/gippy$ python setup.py build running build running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/gippy copying gippy/version.py -> build/lib.linux-x86_64-2.7/gippy copying gippy/init.py -> build/lib.linux-x86_64-2.7/gippy running build_ext building 'gippy/libgip' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/GIP x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IGIP -I/usr/include/python2.7 -c GIP/GeoImage.cpp -o build/temp.linux-x86_64-2.7/GIP/GeoImage.o -std=c++11 -O3 -DBOOST_LOG_DYN_LINK cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] In file included from GIP/gip/GeoImage.h:25:0, from GIP/GeoImage.cpp:22: GIP/gip/GeoResource.h:32:28: fatal error: gdal/gdal_priv.h: No such file or directory #include <gdal/gdal_priv.h> ^ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    opened by bmoskovi 3
  • support GDAL SetGeotransform or equivalent

    support GDAL SetGeotransform or equivalent

    I typically construct geo-image data by specifying an array, a projection, and a geotransform. This could be handled in gippy with the existing constructors if there was a method to set the geotransform (as in GDAL), or separate methods to set spatial resolution, and UL X and Y coordinates.

    feature 
    opened by bhbraswell 3
  • Rect width/height methods assume grid spacing of 1

    Rect width/height methods assume grid spacing of 1

    as discussed with @matthewhanson -- the width being

    p1.x - p0.x + 1 
    

    properly computes the width for a pixel grid where the spacing is 1. But if the spacing is not 1 (call it res), then this will be res - 1 short of the actual width.

    opened by ircwaves 3
  • Build errors: attempt to instantiate abstract class; other likely problems relating to heavy abuses of virtual classes, overrides, etc?

    Build errors: attempt to instantiate abstract class; other likely problems relating to heavy abuses of virtual classes, overrides, etc?

    This repo needs some serious attention w.r.t. to successful c++ compilation with a standard compiler flags. I would suggest far less use of virtual/abstract classes, and/or re-writing the code in a different language that is designed for that.

    opened by justin-ashworth-research 1
  • using cimg.i CImgToArr with boost::python segfault

    using cimg.i CImgToArr with boost::python segfault

    The ArrToCImg() function in cimg.i was causing a segfault

    The fix is detailed below

    `// Convert CImg into numpy array - https://github.com/gipit/gippy/blob/master/gippy/cimg.i // template PyObject* CImgToArr(CImg cimg) {
    int typenum; int numdim = 4;
    npy_intp dims[] = { cimg.spectrum(), cimg.depth(), cimg.height(), cimg.width() }; if (typeid(T) == typeid(uint8_t)) typenum = NPY_UINT8; else if (typeid(T) == typeid(int8_t)) typenum = NPY_INT8; else if (typeid(T) == typeid(uint16_t)) typenum = NPY_UINT16; else if (typeid(T) == typeid(int16_t)) typenum = NPY_INT16; else if (typeid(T) == typeid(uint32_t)) typenum = NPY_UINT32; else if (typeid(T) == typeid(int32_t)) typenum = NPY_INT32; else if (typeid(T) == typeid(uint64_t)) typenum = NPY_UINT64; else if (typeid(T) == typeid(int64_t)) typenum = NPY_INT64; else if (typeid(T) == typeid(float)) typenum = NPY_FLOAT32; else if (typeid(T) == typeid(double)) typenum = NPY_FLOAT64; else throw(std::runtime_error("Error converting CImg to numpy array"));

    if (cimg.spectrum() == 1) { numdim = 3; if (cimg.depth() == 1) { numdim=2; if (cimg.height() == 1) { numdim=1; } } }

    // segfault@ was caused by not calling import_array() inside BOOST_PYTHON_MODULE() // however import_array() didn't compile and required a second fix, a wrapper function // for import_array() as noted in https://wanzenbug.xyz/boost-numpy/ // // reinterpret_cast https://forge.epn-campus.eu/svn/magnetix/src/pythonAPI/NumpyConverter.cpp // PyArray_SimpleNewFromData https://docs.scipy.org/doc/numpy-1.13.0/reference/c-api.array.html // https://stackoverflow.com/questions/30357115/pyarray-simplenewfromdata-example // static PyObject* arr; arr = PyArray_SimpleNewFromData(numdim, &dims[4-numdim], typenum, reinterpret_cast<void*>(cimg.data())); return arr; } // CImgToArr()

    // segfault@ in CImgToArr was caused by not calling import_array() inside // BOOST_PYTHON_MODULE() as noted here // https://www.reddit.com/r/cpp_questions/comments/54clp9/python_c_extension_segfault_in_pyarray_simplenew/ // // however import_array() didn't compile and required a second fix, a wrapper function // for import_array() as noted in https://wanzenbug.xyz/boost-numpy/ // static void * wrap_import_array() { import_array(); return NULL; }

    // wrap python callable functions using boost // // http://openalea.gforge.inria.fr/dokuwiki/data/pdfex/PDF_documentation_package_how_to_integrate_cpp_code_in_python.pdf // https://github.com/TNG/boost-python-examples // BOOST_PYTHON_MODULE(py_run_startracker) {

    using namespace boost::python; using namespace cimg_library; using namespace std;

    // make sure to initialise! Py_Initialize(); bn::initialize();

    wrap_import_array(); // wrapper to fix import_array() segfault!

    boost::python::def("np_thresholdOtsu" , np_thresholdOtsu);

    } // BOOST_PYTHON_MODULE()`

    opened by moloned 0
  • cookie_cutter fix, add alltouch, drop py27

    cookie_cutter fix, add alltouch, drop py27

    • Fixes #172 (res ignored by cookie_cutter)
    • adds alltouch parameter.
    • drops python2.7 support from .circleci

    cookie_cutter note

    The key piece here, is that the extent (bbox) pulled out of the GeoFeature in cookie_cutter is a vector (POINT) extent, and the bbox passed into GeoImage.create_from needs to already be a raster (AREA) extent (in the GDAL DataModel model parlance).

    opened by ircwaves 1
  • build issue with Python 3.5.1

    build issue with Python 3.5.1

    Hello!

    When I try to do a "pip install --user gippy" in Python 3.5.1, I receive the following error:

    python3.5m -c gippy/gippy_wrap.cpp -o build/temp.linux-x86_64-3.5/gippy/gippy_wrap.o -fPIC -O3 -std=c++11 -D GDAL2 -Wno-maybe-uninitialized gippy/gippy_wrap.cpp:5040:34: fatal error: python2.7/Python.h: No such file or directory #include <python2.7/Python.h>

    Can you provide any assistance into why the pip package is looking for python2.7/Python.h instead of python3.5/Python.h?

    opened by bottoj 2
  • cookie_cutter: xres yres ignored

    cookie_cutter: xres yres ignored

    Passing xres, yres to cookie_cutter is ignored because here: https://github.com/gipit/gippy/blob/master/GIP/GeoAlgorithms.cpp#L254 cookie_cutter just grabs the bounding box from the GeoFeature, which is passed down to this code (via GeoImage.create): https://github.com/gipit/gippy/blob/master/GIP/GeoResource.cpp#L101-L103 and the bounding box is used to compute the resolution being stuffed into the image.

    issue demo:

    from gippy import GeoVector, GeoImage
    from gippy.algorithms import cookie_cutter
    
    
    v = GeoVector('/home/icooke/merged.shp')
    fns = ['/vsizip//tmp/PRISM_ppt_provisional_4kmD2_20190601_bil.zip/PRISM_ppt_provisional_4kmD2_20190601_bil.bil']
    imgs = [GeoImage(fn) for fn in fns]
    x = cookie_cutter(imgs, 'out.tif', v[0], xres=1000, yres=1000)
    print('resolution', x.resolution().x(), x.resolution().y())
    
    # output:
    # (venv36) [email protected]:~$ python3 ~/cookie_cutter.py 
    # resolution 997.8931017867908 -995.2071382963369
    
    bug 
    opened by ircwaves 1
  • GeoImage.open doesn't seem to follow docs

    GeoImage.open doesn't seem to follow docs

    Looks like either the API has drifted or else the docs need updating. The docs say you can go:

    geoimg = GeoImage.open(filename, bandnames=(['red', 'green', 'blue']), nodata=0)
    

    But when I try it it looks like it's iterating over the filename's characters:

    (Pdb) gippy.GeoImage.open('foo.tif')
    *** RuntimeError: 4: f: No such file or directory
    

    I can workaround with a list though:

    (Pdb) gippy.GeoImage.open(['foo.tif'])
    *** RuntimeError: 4: foo.tif: No such file or directory
    

    The reason I'd like to call GeoImage.open() over GeoImage() is that with the former I can set nodata & gain as part of the call; I don't see how to do that with GeoImage().

    opened by ra-tolson 1
Releases(1.0.3)
  • 1.0.3(Mar 19, 2019)

    [v1.0.3] - 2019-03-18

    • fixes setting of nodata in GeoImage.open function
    • allow dictionary file creation options to be passed to GeoImage.create() and cookie_cutter
    • added kmeans algorithm
    • fix histogram function, now returns doubles
    • added spectral_statistics algorithm and GeoImage::spectral_statistics function
    • Detailed CHANGELOG added
    Source code(tar.gz)
    Source code(zip)
Owner
GIPIT
Group for the GIPS and GIPPY open source projects
GIPIT
Blender addons to make the bridge between Blender and geographic data

Blender GIS Blender minimal version : 2.8 Mac users warning : currently the addon does not work on Mac with Blender 2.80 to 2.82. Please do not report

5.9k Jan 02, 2023
Hapi is a Python library for building Conceptual Distributed Model using HBV96 lumped model & Muskingum routing method

Current build status All platforms: Current release info Name Downloads Version Platforms Hapi - Hydrological library for Python Hapi is an open-sourc

Mostafa Farrag 15 Dec 26, 2022
The geospatial toolkit for redistricting data.

maup maup is the geospatial toolkit for redistricting data. The package streamlines the basic workflows that arise when working with blocks, precincts

Metric Geometry and Gerrymandering Group 60 Dec 05, 2022
scalable analysis of images and time series

thunder scalable analysis of image and time series analysis in python Thunder is an ecosystem of tools for the analysis of image and time series data

thunder-project 813 Dec 29, 2022
Python bindings and utilities for GeoJSON

geojson This Python library contains: Functions for encoding and decoding GeoJSON formatted data Classes for all GeoJSON Objects An implementation of

Jazzband 765 Jan 06, 2023
🌐 Local tile server for viewing geospatial raster files with ipyleaflet or folium

🌐 Local Tile Server for Geospatial Rasters Need to visualize a rather large (gigabytes) raster you have locally? This is for you. A Flask application

Bane Sullivan 192 Jan 04, 2023
Deal with Bing Maps Tiles and Pixels / WGS 84 coordinates conversions, and generate grid Shapefiles

PyBingTiles This is a small toolkit in order to deal with Bing Tiles, used i.e. by Facebook for their Data for Good datasets. Install Clone this repos

Shoichi 1 Dec 08, 2021
Cloud Optimized GeoTIFF creation and validation plugin for rasterio

rio-cogeo Cloud Optimized GeoTIFF (COG) creation and validation plugin for Rasterio. Documentation: https://cogeotiff.github.io/rio-cogeo/ Source Code

216 Dec 31, 2022
A trivia questions about Europe

EUROPE TRIVIA QUIZ IN PYTHON Project Outline Ask user if he / she knows more about Europe. If yes show the Trivia main screen, else show the end Trivi

David Danso 1 Nov 17, 2021
QLUSTER is a relative orbit design tool for formation flying satellite missions and space rendezvous scenarios

QLUSTER is a relative orbit design tool for formation flying satellite missions and space rendezvous scenarios, that I wrote in Python 3 for my own research and visualisation. It is currently unfinis

Samuel Low 9 Aug 23, 2022
Raster-based Spatial Analysis for Python

🌍 xarray-spatial: Raster-Based Spatial Analysis in Python 📍 Fast, Accurate Python library for Raster Operations ⚡ Extensible with Numba ⏩ Scalable w

makepath 649 Jan 01, 2023
Tool to display your current position and angle above your radar

🛠 Tool to display your current position and angle above your radar. As a response to the CS:GO Update on 1.2.2022, which makes cl_showpos a cheat-pro

Miko 6 Jan 04, 2023
Python interface to PROJ (cartographic projections and coordinate transformations library)

pyproj Python interface to PROJ (cartographic projections and coordinate transformations library). Documentation Stable: http://pyproj4.github.io/pypr

832 Dec 31, 2022
Download and process satellite imagery in Python using Sentinel Hub services.

Description The sentinelhub Python package allows users to make OGC (WMS and WCS) web requests to download and process satellite images within your Py

Sentinel Hub 659 Dec 23, 2022
Tools for the extraction of OpenStreetMap street network data

OSMnet Tools for the extraction of OpenStreetMap (OSM) street network data. Intended to be used in tandem with Pandana and UrbanAccess libraries to ex

Urban Data Science Toolkit 47 Sep 21, 2022
Django model field that can hold a geoposition, and corresponding widget

django-geoposition A model field that can hold a geoposition (latitude/longitude), and corresponding admin/form widget. Prerequisites Starting with ve

Philipp Bosch 324 Oct 17, 2022
Calculate the area inside of any GeoJSON geometry. This is a port of Mapbox's geojson-area for Python

geojson-area Calculate the area inside of any GeoJSON geometry. This is a port of Mapbox's geojson-area for Python. Installation $ pip install area U

Alireza 87 Dec 14, 2022
Python 台灣行政區地圖 (2021)

Python 台灣行政區地圖 (2021) 以 python 讀取政府開放平台的 ShapeFile 地圖資訊。歡迎引用或是協作 另有縣市資訊、村里資訊與各種行政地圖資訊 例如: 直轄市、縣市界線(TWD97經緯度) 鄉鎮市區界線(TWD97經緯度) | 政府資料開放平臺: https://data

WeselyOng 12 Sep 27, 2022
Imperial Valley Geomorphology Map

Roughly maps the extent of basins, basin edges, and mountains in the Imperial Valley by grouping terrain classes from the Iwahashi et al. 2021 California terrian classification model.

0 Dec 13, 2022
Python library to decrypt Airtag reports, as well as a InfluxDB/Grafana self-hosted dashboard example

Openhaystack-python This python daemon will allow you to gather your Openhaystack-based airtag reports and display them on a Grafana dashboard. You ca

Bezmenov Denys 19 Jan 03, 2023