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
Python script that can be used to generate latitude/longitude coordinates for GOES-16 full-disk extent.

goes-latlon Python script that can be used to generate latitude/longitude coordinates for GOES-16 full-disk extent. 🌎 🛰️ The grid files can be acces

Douglas Uba 3 Apr 06, 2022
gjf: A tool for fixing invalid GeoJSON objects

gjf: A tool for fixing invalid GeoJSON objects The goal of this tool is to make it as easy as possible to fix invalid GeoJSON objects through Python o

Yazeed Almuqwishi 91 Dec 06, 2022
Zora is a python program that searches for GeoLocation info for given CIDR networks , with options to search with API or without API

Zora Zora is a python program that searches for GeoLocation info for given CIDR networks , with options to search with API or without API Installing a

z3r0day 1 Oct 26, 2021
Summary statistics of geospatial raster datasets based on vector geometries.

rasterstats rasterstats is a Python module for summarizing geospatial raster datasets based on vector geometries. It includes functions for zonal stat

Matthew Perry 437 Dec 23, 2022
Geodata extensions for Django REST Framework

Django-Spillway Django and Django REST Framework integration of raster and feature based geodata. Spillway builds on the immensely marvelous Django RE

Brian Galey 62 Jan 04, 2023
A library to access OpenStreetMap related services

OSMPythonTools The python package OSMPythonTools provides easy access to OpenStreetMap (OSM) related services, among them an Overpass endpoint, Nomina

Franz-Benjamin Mocnik 342 Dec 31, 2022
GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.

Table of Contents What is GeoNode? Try out GeoNode Install Learn GeoNode Development Contributing Roadmap Showcase Most useful links Licensing What is

GeoNode Development Team 1.2k Dec 26, 2022
A simple python script that, given a location and a date, uses the Nasa Earth API to show a photo taken by the Landsat 8 satellite. The script must be executed on the command-line.

What does it do? Given a location and a date, it uses the Nasa Earth API to show a photo taken by the Landsat 8 satellite. The script must be executed

Caio 42 Nov 26, 2022
Pandas Network Analysis: fast accessibility metrics and shortest paths, using contraction hierarchies :world_map:

Pandana Pandana is a Python library for network analysis that uses contraction hierarchies to calculate super-fast travel accessibility metrics and sh

Urban Data Science Toolkit 321 Jan 05, 2023
Python library to visualize circular plasmid maps

Plasmidviewer Plasmidviewer is a Python library to visualize plasmid maps from GenBank. This library provides only the function to visualize circular

Mori Hideto 9 Dec 04, 2022
Implementation of Trajectory classes and functions built on top of GeoPandas

MovingPandas MovingPandas implements a Trajectory class and corresponding methods based on GeoPandas. Visit movingpandas.org for details! You can run

Anita Graser 897 Jan 01, 2023
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
Google Maps keeps old satellite imagery around for a while – this tool collects what's available for a user-specified region in the form of a GIF.

google-maps-at-88-mph The folks maintaining Google Maps regularly update the satellite imagery it serves its users, but outdated versions of the image

Noah Doersing 111 Sep 27, 2022
Spatial Interpolation Toolbox is a Python-based GUI that is able to interpolate spatial data in vector format.

Spatial Interpolation Toolbox This is the home to Spatial Interpolation Toolbox, a graphical user interface (GUI) for interpolating geographic vector

Michael Ward 2 Nov 01, 2021
Bacon - Band-limited Coordinate Networks for Multiscale Scene Representation

BACON: Band-limited Coordinate Networks for Multiscale Scene Representation Project Page | Video | Paper Official PyTorch implementation of BACON. BAC

Stanford Computational Imaging Lab 144 Dec 29, 2022
Obtain a GNSS position fix from an 11-millisecond raw GNSS signal snapshot

Obtain a GNSS position fix from an 11-millisecond raw GNSS signal snapshot without any prior knowledge about the position of the receiver and only coarse knowledge about the time.

Jonas Beuchert 2 Nov 17, 2022
Geographic add-ons for Django REST Framework. Maintained by the OpenWISP Project.

django-rest-framework-gis Geographic add-ons for Django Rest Framework - Mailing List. Install last stable version from pypi pip install djangorestfra

OpenWISP 981 Jan 03, 2023
Extract GoPro highlights and GPMF data.

Python script that parses the gpmd stream for GOPRO moov track (MP4) and extract the GPS info into a GPX (and kml) file.

Chris Auron 2 May 13, 2022
iNaturalist observations along hiking trails

This tool reads the route of a hike and generates a table of iNaturalist observations along the trails. It also shows the observations and the route of the hike on a map. Moreover, it saves waypoints

7 Nov 11, 2022
Program that shows all the details of the given IP address. Build with Python and ipinfo.io API

ip-details This is a program that shows all the details of the given IP address. Build with Python and ipinfo.io API Usage To use this program, run th

4 Mar 01, 2022