%global _empty_manifest_terminate_build 0 Name: python-osm2geojson Version: 0.2.4 Release: 1 Summary: Parse OSM and Overpass JSON License: MIT URL: https://github.com/aspectumapp/osm2geojson Source0: https://mirrors.nju.edu.cn/pypi/web/packages/9a/ce/bb00a9c79b72ba63bd9ba2f10f49e0412e39baa161583707e186c9b587c8/osm2geojson-0.2.4.tar.gz BuildArch: noarch %description # osm2geojson ![Test package](https://github.com/aspectumapp/osm2geojson/workflows/Test%20package/badge.svg) Parse OSM and Overpass JSON with python. **This library is under development!** ### Usage Install this package with pip: ```sh $ pip install osm2geojson ``` If you want to convert OSM xml or Overpass json/xml to Geojson you can import this lib and use one of 4 methods: - `json2shapes(dict json_from_overpass)` - to convert Overpass json to \*Shape-objects - `xml2shapes(str xml_from_osm)` - to convert OSM xml or Overpass xml to \*Shape-objects - `json2geojson(dict json_from_overpass)` - to convert Overpass json to Geojson - `xml2geojson(str xml_from_osm)` - to convert OSM xml or Overpass xml to Geojson Additional parameters for all functions: - `filter_used_refs` - (default: `True`) defines geometry filtration strategy (will return all geometry if set as `False`) - `log_level` - (default: `'ERROR'`) controls logging level (will print all logs if set as `'INFO'`). More details [here](https://docs.python.org/3/library/logging.html#logging-levels) - `area_keys` - (default: `None`) defines which keys and values of an area should be saved from the list of OSM tags, see `areaKeys.json` for the defaults - `polygon_features` - (default: `None`) defines a whitelist/blacklist of features to be included in resulting polygons, see `polygon-features.json` for the defaults - `raise_on_failure` - (default: `False`) controls whether to throw an exception when geometry generation fails Other handy methods: - `overpass_call(str query)` - runs query to overpass-api.de server (retries 5 times in case of error). - `shape_to_feature(Shape shape, dict properties)` - Converts Shape-object to GeoJSON with passed properties. **\*Shape-object - for convenience created simple dict to save Shapely object (geometry) and OSM-properties. Structure of this object:** ```py shape_obj = { 'shape': Point | LineString | Polygon ..., 'properties': { 'type': 'relation' | 'node' ..., 'tags': { ... }, ... } } ``` After installing via `pip`, the module may also be used as a `argparse`-based command-line script. Either use the script name directly or call Python with the `-m` option and the package name: ```sh osm2geojson --help ``` ```sh python3 -m osm2geojson --help ``` ### Examples Convert OSM-xml to Geojson: ```py import codecs import osm2geojson with codecs.open('file.osm', 'r', encoding='utf-8') as data: xml = data.read() geojson = osm2geojson.xml2geojson(xml, filter_used_refs=False, log_level='INFO') # >> { "type": "FeatureCollection", "features": [ ... ] } ``` Convert OSM-json to Shape-objects: ```py import codecs import osm2geojson with codecs.open('file.json', 'r', encoding='utf-8') as data: json = data.read() shapes_with_props = osm2geojson.json2shapes(json) # >> [ { "shape": , "properties": {...} }, ... ] ``` ### Development Clone project with submodules ```sh $ git clone --recurse-submodules https://github.com/aspectumapp/osm2geojson.git ``` Setup package ```sh $ python setup.py develop ``` Run tests ```sh $ python -m unittest tests ``` Run single test ```sh $ python tests/main.py TestOsm2GeoJsonMethods.test_barrier_wall ``` Update osm-polygon-features to last version (if you want last version) ```sh $ ./update-osm-polygon-features.sh ``` ### ToDo * Add tests and examples for cli tool * Add actions related to cli tool (more info https://github.com/aspectumapp/osm2geojson/pull/32#issuecomment-1073386381) %package -n python3-osm2geojson Summary: Parse OSM and Overpass JSON Provides: python-osm2geojson BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-osm2geojson # osm2geojson ![Test package](https://github.com/aspectumapp/osm2geojson/workflows/Test%20package/badge.svg) Parse OSM and Overpass JSON with python. **This library is under development!** ### Usage Install this package with pip: ```sh $ pip install osm2geojson ``` If you want to convert OSM xml or Overpass json/xml to Geojson you can import this lib and use one of 4 methods: - `json2shapes(dict json_from_overpass)` - to convert Overpass json to \*Shape-objects - `xml2shapes(str xml_from_osm)` - to convert OSM xml or Overpass xml to \*Shape-objects - `json2geojson(dict json_from_overpass)` - to convert Overpass json to Geojson - `xml2geojson(str xml_from_osm)` - to convert OSM xml or Overpass xml to Geojson Additional parameters for all functions: - `filter_used_refs` - (default: `True`) defines geometry filtration strategy (will return all geometry if set as `False`) - `log_level` - (default: `'ERROR'`) controls logging level (will print all logs if set as `'INFO'`). More details [here](https://docs.python.org/3/library/logging.html#logging-levels) - `area_keys` - (default: `None`) defines which keys and values of an area should be saved from the list of OSM tags, see `areaKeys.json` for the defaults - `polygon_features` - (default: `None`) defines a whitelist/blacklist of features to be included in resulting polygons, see `polygon-features.json` for the defaults - `raise_on_failure` - (default: `False`) controls whether to throw an exception when geometry generation fails Other handy methods: - `overpass_call(str query)` - runs query to overpass-api.de server (retries 5 times in case of error). - `shape_to_feature(Shape shape, dict properties)` - Converts Shape-object to GeoJSON with passed properties. **\*Shape-object - for convenience created simple dict to save Shapely object (geometry) and OSM-properties. Structure of this object:** ```py shape_obj = { 'shape': Point | LineString | Polygon ..., 'properties': { 'type': 'relation' | 'node' ..., 'tags': { ... }, ... } } ``` After installing via `pip`, the module may also be used as a `argparse`-based command-line script. Either use the script name directly or call Python with the `-m` option and the package name: ```sh osm2geojson --help ``` ```sh python3 -m osm2geojson --help ``` ### Examples Convert OSM-xml to Geojson: ```py import codecs import osm2geojson with codecs.open('file.osm', 'r', encoding='utf-8') as data: xml = data.read() geojson = osm2geojson.xml2geojson(xml, filter_used_refs=False, log_level='INFO') # >> { "type": "FeatureCollection", "features": [ ... ] } ``` Convert OSM-json to Shape-objects: ```py import codecs import osm2geojson with codecs.open('file.json', 'r', encoding='utf-8') as data: json = data.read() shapes_with_props = osm2geojson.json2shapes(json) # >> [ { "shape": , "properties": {...} }, ... ] ``` ### Development Clone project with submodules ```sh $ git clone --recurse-submodules https://github.com/aspectumapp/osm2geojson.git ``` Setup package ```sh $ python setup.py develop ``` Run tests ```sh $ python -m unittest tests ``` Run single test ```sh $ python tests/main.py TestOsm2GeoJsonMethods.test_barrier_wall ``` Update osm-polygon-features to last version (if you want last version) ```sh $ ./update-osm-polygon-features.sh ``` ### ToDo * Add tests and examples for cli tool * Add actions related to cli tool (more info https://github.com/aspectumapp/osm2geojson/pull/32#issuecomment-1073386381) %package help Summary: Development documents and examples for osm2geojson Provides: python3-osm2geojson-doc %description help # osm2geojson ![Test package](https://github.com/aspectumapp/osm2geojson/workflows/Test%20package/badge.svg) Parse OSM and Overpass JSON with python. **This library is under development!** ### Usage Install this package with pip: ```sh $ pip install osm2geojson ``` If you want to convert OSM xml or Overpass json/xml to Geojson you can import this lib and use one of 4 methods: - `json2shapes(dict json_from_overpass)` - to convert Overpass json to \*Shape-objects - `xml2shapes(str xml_from_osm)` - to convert OSM xml or Overpass xml to \*Shape-objects - `json2geojson(dict json_from_overpass)` - to convert Overpass json to Geojson - `xml2geojson(str xml_from_osm)` - to convert OSM xml or Overpass xml to Geojson Additional parameters for all functions: - `filter_used_refs` - (default: `True`) defines geometry filtration strategy (will return all geometry if set as `False`) - `log_level` - (default: `'ERROR'`) controls logging level (will print all logs if set as `'INFO'`). More details [here](https://docs.python.org/3/library/logging.html#logging-levels) - `area_keys` - (default: `None`) defines which keys and values of an area should be saved from the list of OSM tags, see `areaKeys.json` for the defaults - `polygon_features` - (default: `None`) defines a whitelist/blacklist of features to be included in resulting polygons, see `polygon-features.json` for the defaults - `raise_on_failure` - (default: `False`) controls whether to throw an exception when geometry generation fails Other handy methods: - `overpass_call(str query)` - runs query to overpass-api.de server (retries 5 times in case of error). - `shape_to_feature(Shape shape, dict properties)` - Converts Shape-object to GeoJSON with passed properties. **\*Shape-object - for convenience created simple dict to save Shapely object (geometry) and OSM-properties. Structure of this object:** ```py shape_obj = { 'shape': Point | LineString | Polygon ..., 'properties': { 'type': 'relation' | 'node' ..., 'tags': { ... }, ... } } ``` After installing via `pip`, the module may also be used as a `argparse`-based command-line script. Either use the script name directly or call Python with the `-m` option and the package name: ```sh osm2geojson --help ``` ```sh python3 -m osm2geojson --help ``` ### Examples Convert OSM-xml to Geojson: ```py import codecs import osm2geojson with codecs.open('file.osm', 'r', encoding='utf-8') as data: xml = data.read() geojson = osm2geojson.xml2geojson(xml, filter_used_refs=False, log_level='INFO') # >> { "type": "FeatureCollection", "features": [ ... ] } ``` Convert OSM-json to Shape-objects: ```py import codecs import osm2geojson with codecs.open('file.json', 'r', encoding='utf-8') as data: json = data.read() shapes_with_props = osm2geojson.json2shapes(json) # >> [ { "shape": , "properties": {...} }, ... ] ``` ### Development Clone project with submodules ```sh $ git clone --recurse-submodules https://github.com/aspectumapp/osm2geojson.git ``` Setup package ```sh $ python setup.py develop ``` Run tests ```sh $ python -m unittest tests ``` Run single test ```sh $ python tests/main.py TestOsm2GeoJsonMethods.test_barrier_wall ``` Update osm-polygon-features to last version (if you want last version) ```sh $ ./update-osm-polygon-features.sh ``` ### ToDo * Add tests and examples for cli tool * Add actions related to cli tool (more info https://github.com/aspectumapp/osm2geojson/pull/32#issuecomment-1073386381) %prep %autosetup -n osm2geojson-0.2.4 %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-osm2geojson -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon May 15 2023 Python_Bot - 0.2.4-1 - Package Spec generated