diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-12 02:07:17 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 02:07:17 +0000 |
commit | c5a8a10561d0479dc1d3b90d4d0fc108f2c2eec7 (patch) | |
tree | 9a535d5f4e8a3858e969506315ca2c266cc30c59 | |
parent | 3334ee79aed292085a26ac4f70cd9b3baf049873 (diff) |
automatic import of python-geobuf
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-geobuf.spec | 301 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 303 insertions, 0 deletions
@@ -0,0 +1 @@ +/geobuf-1.1.1.tar.gz diff --git a/python-geobuf.spec b/python-geobuf.spec new file mode 100644 index 0000000..bd43ed5 --- /dev/null +++ b/python-geobuf.spec @@ -0,0 +1,301 @@ +%global _empty_manifest_terminate_build 0 +Name: python-geobuf +Version: 1.1.1 +Release: 1 +Summary: Geobuf is a compact binary geospatial format for lossless compression of GeoJSON and TopoJSON data. +License: MIT +URL: https://github.com/mapbox/pygeobuf +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/af/f0/7d9f7d7b2b45dbf9ef6addf00bdd5261045be6e5a37a005e9929c08de86f/geobuf-1.1.1.tar.gz +BuildArch: noarch + +Requires: python3-click +Requires: python3-protobuf +Requires: python3-six +Requires: python3-pytest + +%description +Geobuf is a compact binary geospatial format for *lossless* compression +of GeoJSON and TopoJSON data. +|Build Status| |Coverage Status| +**Note well**: this project is no longer actively developed. Issues and +pull requests will be attended to when possible, but delays should be +expected. +Advantages over using GeoJSON and TopoJSON directly (in this `revised +version <https://github.com/mapbox/geobuf/issues/27>`__): +- **Very compact**: typically makes GeoJSON 6-8 times smaller and + TopoJSON 2-3 times smaller. +- Smaller even when comparing gzipped sizes: 2-2.5x compression for + GeoJSON and 20-30% for TopoJSON. +- Easy **incremental parsing** — you can get features out as you read + them, without the need to build in-memory representation of the whole + data. +- **Partial reads** — you can read only the parts you actually need, + skipping the rest. +- Trivial **concatenation**: you can concatenate many Geobuf files + together and they will form a valid combined Geobuf file. +- Potentially **faster encoding/decoding** compared to native JSON + implementations (i.e. in Web browsers). +- Can still accommodate any GeoJSON and TopoJSON data, including + extensions with arbitrary properties. +Think of this as an attempt to design a simple, modern Shapefile +successor that works seamlessly with GeoJSON and TopoJSON. +Unlike `Mapbox Vector +Tiles <https://github.com/mapbox/vector-tile-spec/>`__, it aims for +*lossless* compression of datasets — without tiling, projecting +coordinates, flattening geometries or stripping properties. +pygeobuf +^^^^^^^^ +This repository is the first encoding/decoding implementation of this +new major version of `Geobuf <https://github.com/mapbox/geobuf>`__ (in +Python). It serves as a prototyping playground, with faster +implementations in JS and C++ coming in future. +Sample compression sizes +^^^^^^^^^^^^^^^^^^^^^^^^ + | normal | gzipped ++---------------------+-------------+------------+ +| us-zips.json | 101.85 MB | 26.67 MB | ++---------------------+-------------+------------+ +| us-zips.pbf | 12.24 MB | 10.48 MB | ++---------------------+-------------+------------+ +| us-zips.topo.json | 15.02 MB | 3.19 MB | ++---------------------+-------------+------------+ +| us-zips.topo.pbf | 4.85 MB | 2.72 MB | ++---------------------+-------------+------------+ +| idaho.json | 10.92 MB | 2.57 MB | ++---------------------+-------------+------------+ +| idaho.pbf | 1.37 MB | 1.17 MB | ++---------------------+-------------+------------+ +| idaho.topo.json | 1.9 MB | 612 KB | ++---------------------+-------------+------------+ +| idaho.topo.pbf | 567 KB | 479 KB | ++---------------------+-------------+------------+ +Usage +~~~~~ +Command line: + geobuf encode < example.json > example.pbf + geobuf decode < example.pbf > example.pbf.json +As a module: + import geobuf + pbf = geobuf.encode(my_json) # GeoJSON or TopoJSON -> Geobuf string + my_json = geobuf.decode(pbf) # Geobuf string -> GeoJSON or TopoJSON +The ``encode`` function accepts a dict-like object, for example the +result of ``json.loads(json_str)``. +Both ``encode.py`` and ``geobuf.encode`` accept two optional arguments: +- **precision** — max number of digits after the decimal point in + coordinates, ``6`` by default. +- **dimensions** — number of dimensions in coordinates, ``2`` by + default. +Tests +~~~~~ + py.test -v +The tests run through all ``.json`` files in the ``fixtures`` directory, +comparing each original GeoJSON with an encoded/decoded one. + +%package -n python3-geobuf +Summary: Geobuf is a compact binary geospatial format for lossless compression of GeoJSON and TopoJSON data. +Provides: python-geobuf +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-geobuf +Geobuf is a compact binary geospatial format for *lossless* compression +of GeoJSON and TopoJSON data. +|Build Status| |Coverage Status| +**Note well**: this project is no longer actively developed. Issues and +pull requests will be attended to when possible, but delays should be +expected. +Advantages over using GeoJSON and TopoJSON directly (in this `revised +version <https://github.com/mapbox/geobuf/issues/27>`__): +- **Very compact**: typically makes GeoJSON 6-8 times smaller and + TopoJSON 2-3 times smaller. +- Smaller even when comparing gzipped sizes: 2-2.5x compression for + GeoJSON and 20-30% for TopoJSON. +- Easy **incremental parsing** — you can get features out as you read + them, without the need to build in-memory representation of the whole + data. +- **Partial reads** — you can read only the parts you actually need, + skipping the rest. +- Trivial **concatenation**: you can concatenate many Geobuf files + together and they will form a valid combined Geobuf file. +- Potentially **faster encoding/decoding** compared to native JSON + implementations (i.e. in Web browsers). +- Can still accommodate any GeoJSON and TopoJSON data, including + extensions with arbitrary properties. +Think of this as an attempt to design a simple, modern Shapefile +successor that works seamlessly with GeoJSON and TopoJSON. +Unlike `Mapbox Vector +Tiles <https://github.com/mapbox/vector-tile-spec/>`__, it aims for +*lossless* compression of datasets — without tiling, projecting +coordinates, flattening geometries or stripping properties. +pygeobuf +^^^^^^^^ +This repository is the first encoding/decoding implementation of this +new major version of `Geobuf <https://github.com/mapbox/geobuf>`__ (in +Python). It serves as a prototyping playground, with faster +implementations in JS and C++ coming in future. +Sample compression sizes +^^^^^^^^^^^^^^^^^^^^^^^^ + | normal | gzipped ++---------------------+-------------+------------+ +| us-zips.json | 101.85 MB | 26.67 MB | ++---------------------+-------------+------------+ +| us-zips.pbf | 12.24 MB | 10.48 MB | ++---------------------+-------------+------------+ +| us-zips.topo.json | 15.02 MB | 3.19 MB | ++---------------------+-------------+------------+ +| us-zips.topo.pbf | 4.85 MB | 2.72 MB | ++---------------------+-------------+------------+ +| idaho.json | 10.92 MB | 2.57 MB | ++---------------------+-------------+------------+ +| idaho.pbf | 1.37 MB | 1.17 MB | ++---------------------+-------------+------------+ +| idaho.topo.json | 1.9 MB | 612 KB | ++---------------------+-------------+------------+ +| idaho.topo.pbf | 567 KB | 479 KB | ++---------------------+-------------+------------+ +Usage +~~~~~ +Command line: + geobuf encode < example.json > example.pbf + geobuf decode < example.pbf > example.pbf.json +As a module: + import geobuf + pbf = geobuf.encode(my_json) # GeoJSON or TopoJSON -> Geobuf string + my_json = geobuf.decode(pbf) # Geobuf string -> GeoJSON or TopoJSON +The ``encode`` function accepts a dict-like object, for example the +result of ``json.loads(json_str)``. +Both ``encode.py`` and ``geobuf.encode`` accept two optional arguments: +- **precision** — max number of digits after the decimal point in + coordinates, ``6`` by default. +- **dimensions** — number of dimensions in coordinates, ``2`` by + default. +Tests +~~~~~ + py.test -v +The tests run through all ``.json`` files in the ``fixtures`` directory, +comparing each original GeoJSON with an encoded/decoded one. + +%package help +Summary: Development documents and examples for geobuf +Provides: python3-geobuf-doc +%description help +Geobuf is a compact binary geospatial format for *lossless* compression +of GeoJSON and TopoJSON data. +|Build Status| |Coverage Status| +**Note well**: this project is no longer actively developed. Issues and +pull requests will be attended to when possible, but delays should be +expected. +Advantages over using GeoJSON and TopoJSON directly (in this `revised +version <https://github.com/mapbox/geobuf/issues/27>`__): +- **Very compact**: typically makes GeoJSON 6-8 times smaller and + TopoJSON 2-3 times smaller. +- Smaller even when comparing gzipped sizes: 2-2.5x compression for + GeoJSON and 20-30% for TopoJSON. +- Easy **incremental parsing** — you can get features out as you read + them, without the need to build in-memory representation of the whole + data. +- **Partial reads** — you can read only the parts you actually need, + skipping the rest. +- Trivial **concatenation**: you can concatenate many Geobuf files + together and they will form a valid combined Geobuf file. +- Potentially **faster encoding/decoding** compared to native JSON + implementations (i.e. in Web browsers). +- Can still accommodate any GeoJSON and TopoJSON data, including + extensions with arbitrary properties. +Think of this as an attempt to design a simple, modern Shapefile +successor that works seamlessly with GeoJSON and TopoJSON. +Unlike `Mapbox Vector +Tiles <https://github.com/mapbox/vector-tile-spec/>`__, it aims for +*lossless* compression of datasets — without tiling, projecting +coordinates, flattening geometries or stripping properties. +pygeobuf +^^^^^^^^ +This repository is the first encoding/decoding implementation of this +new major version of `Geobuf <https://github.com/mapbox/geobuf>`__ (in +Python). It serves as a prototyping playground, with faster +implementations in JS and C++ coming in future. +Sample compression sizes +^^^^^^^^^^^^^^^^^^^^^^^^ + | normal | gzipped ++---------------------+-------------+------------+ +| us-zips.json | 101.85 MB | 26.67 MB | ++---------------------+-------------+------------+ +| us-zips.pbf | 12.24 MB | 10.48 MB | ++---------------------+-------------+------------+ +| us-zips.topo.json | 15.02 MB | 3.19 MB | ++---------------------+-------------+------------+ +| us-zips.topo.pbf | 4.85 MB | 2.72 MB | ++---------------------+-------------+------------+ +| idaho.json | 10.92 MB | 2.57 MB | ++---------------------+-------------+------------+ +| idaho.pbf | 1.37 MB | 1.17 MB | ++---------------------+-------------+------------+ +| idaho.topo.json | 1.9 MB | 612 KB | ++---------------------+-------------+------------+ +| idaho.topo.pbf | 567 KB | 479 KB | ++---------------------+-------------+------------+ +Usage +~~~~~ +Command line: + geobuf encode < example.json > example.pbf + geobuf decode < example.pbf > example.pbf.json +As a module: + import geobuf + pbf = geobuf.encode(my_json) # GeoJSON or TopoJSON -> Geobuf string + my_json = geobuf.decode(pbf) # Geobuf string -> GeoJSON or TopoJSON +The ``encode`` function accepts a dict-like object, for example the +result of ``json.loads(json_str)``. +Both ``encode.py`` and ``geobuf.encode`` accept two optional arguments: +- **precision** — max number of digits after the decimal point in + coordinates, ``6`` by default. +- **dimensions** — number of dimensions in coordinates, ``2`` by + default. +Tests +~~~~~ + py.test -v +The tests run through all ``.json`` files in the ``fixtures`` directory, +comparing each original GeoJSON with an encoded/decoded one. + +%prep +%autosetup -n geobuf-1.1.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-geobuf -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.1-1 +- Package Spec generated @@ -0,0 +1 @@ +b7110d8fa197d936daa59842a4bc2170 geobuf-1.1.1.tar.gz |