mapproxy-hips is a plugin for MapProxy (http://mapproxy.github.io/mapproxy/) providing extensions for interoperability between OGC services (WMS, WMTS, OGCAPI …) and the HiPS protocol (https://www.ivoa.net/documents/HiPS/) from IVOA.
The plugin requires MapProxy >= 7.0.0.
Quickstart
python3 -m venv myvenv
source myvenv/bin/activate
pip install mapproxy
pip install mapproxy_hips
git clone https://github.com/rouault/mapproxy_hips
mapproxy-util serve-develop mapproxy_hips/hips_examples/ogc_as_hips/mapproxy.yaml &
curl http://localhost:8080/hips/mars_tiled_geodetic/properties
Adding a HIPS service
Exposing a HIPS service (that is HIPS as output of MapProxy) requires to declare a hips item under services in the MapProxy configuration file.
services:
hips:
#resampling_method: nearest_neighbour
resampling_method: bilinear
#resampling_method: bicubic
# populate_cache: false
And you generally need to customize HIPS metadata for each exposed layer:
layers:
- name: my_layer_name
title: my title
sources: [my_source]
md:
hips:
# enabled: false
creator_did: ivo://unknown.authority/some_id
obs_title: Some title
# foo: bar
# hips_tile_width: 512
# hips_order: 5
See https://github.com/rouault/mapproxy_hips/blob/master/hips_examples/ogc_as_hips/mapproxy.yaml for a full example.
Utilities
The hips-allsky command of the mapproxy-util script can be used to generate the allsky file needed by some HIPS consumers.
Usage: mapproxy-util hips-allsky [options] -f mapproxy_conf -l layer
Options:
-h, --help show this help message and exit
-f MAPPROXY_CONF, --mapproxy-conf=MAPPROXY_CONF
MapProxy configuration.
-l LAYER, --layer=LAYER
Layer
-o NORDER, --norder=NORDER
Order
-c CONCURRENCY, --concurrency=CONCURRENCY
number of parallel processes
The hips-seed command of the mapproxy-util script can be used to generate to pre-generate HIPS tiles.
Usage: mapproxy-util hips-seed [options] -f mapproxy_conf -l layer
Options:
-h, --help show this help message and exit
-f MAPPROXY_CONF, --mapproxy-conf=MAPPROXY_CONF
MapProxy configuration.
-l LAYER, --layer=LAYER
Layer
-o NORDER, --norder=NORDER
Order
-c CONCURRENCY, --concurrency=CONCURRENCY
number of parallel processes
Adding a HIPS source
Adding a HIPS source (that is HIPS as input of MapProxy) requires to specify type: hips in a source declaration, and specifying the URL and image format of the HIPS service.
sources:
mars_hips_source:
type: hips
image:
format: image/jpeg
resampling_method: bilinear
url: http://alasky.u-strasbg.fr/Planets/Mars_MOLA
# cache_hips_tiles: false
See https://github.com/rouault/mapproxy_hips/blob/master/hips_examples/hips_source/mapproxy.yaml for a full example.
And https://github.com/rouault/mapproxy_hips/blob/master/hips_examples/hips_source/mapproxy_iau_49900.yaml for an example involving IAU CRS.
OpenTelemetry
The plugin has an OpenTelemetry integation. It is enabled when the OTEL_EXPORTER_OTLP_ENDPOINT environment is set, e.g. to http://localhost:4317.
The OTEL_SERVICE_NAME environment variable is set by default to mapproxy.hips, and can be overriden by the user before starting MapProxy.
Other environment variables can be set as detailed in https://opentelemetry-python.readthedocs.io/en/latest/sdk/environment_variables.html
OpenTelemetry good working can be checked with the following procedure:
Given a otel-collector-config.yaml file containing
receivers:
otlp:
protocols:
http:
endpoint: 0.0.0.0:4317
exporters:
debug:
verbosity: detailed
service:
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
metrics:
receivers: [otlp]
exporters: [debug]
logs:
receivers: [otlp]
exporters: [debug]
Launch the following opentelemetry-collector service:
$ docker run -p 4317:4317 \
-v $PWD/otel-collector-config.yaml:/etc/otel-collector-config.yaml \
otel/opentelemetry-collector:latest \
--config=/etc/otel-collector-config.yaml
Credits
Funded by Centre National d’Etudes Spatiales (CNES, https://cnes.fr) within the framework of the “Pôle de Données et Services Surfaces Planétaires” (PDSSP) project.
Metadata
Release files for mapproxy-hips 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mapproxy_hips-0.4.0.tar.gz | 26.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mapproxy_hips-0.4.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 55.5 kB
Release files / mapproxy_hips-0.4.0.tar.gz
| Download URL | mapproxy_hips-0.4.0.tar.gz |
|---|---|
| Size | 26.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cfc685dd10daf0727228437483025ea3f9a8d9479d432fda4b252d9ba1787bc6
|
|
BLAKE2b-256 checksum How to use checksums |
c0510e9a556dcc812bdc41bfd2afd19d5bd0428a12df145ecf7401e8fa91dd53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / mapproxy_hips-0.4.0-py2.py3-none-any.whl
| Download URL | mapproxy_hips-0.4.0-py2.py3-none-any.whl |
|---|---|
| Size | 29.2 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
63238e9f278da35ec1bfcb71ad1865ef1ebc9d3869c7e46ab69c3cbeb8fe97b7
|
|
BLAKE2b-256 checksum How to use checksums |
24a451d74fc8572ade1bad39cfcf4eaf421fe0222be4fee2c3b740a13684fe02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for mapproxy-hips 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.