Skip to main content

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)

Source distribution for mapproxy-hips 0.4.0
File Size Uploaded Provenance
mapproxy_hips-0.4.0.tar.gz 26.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mapproxy-hips 0.4.0
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page