Skip to main content

Plugin for MapProxy adding HIPS capabilities

Project description

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 >= 6.0.1.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mapproxy_hips-0.3.1.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mapproxy_hips-0.3.1-py2.py3-none-any.whl (29.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file mapproxy_hips-0.3.1.tar.gz.

File metadata

  • Download URL: mapproxy_hips-0.3.1.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for mapproxy_hips-0.3.1.tar.gz
Algorithm Hash digest
SHA256 7a9707217eabfd5fee2524b2b7b0e94e95ba31d637cc61088e359a833bf8e7da
MD5 18171563cc4b884161b7c3b9b9e8f5d2
BLAKE2b-256 a59c4e6f21d6807c731939497dd338cbf55d683fd18563726b8816b239298770

See more details on using hashes here.

File details

Details for the file mapproxy_hips-0.3.1-py2.py3-none-any.whl.

File metadata

  • Download URL: mapproxy_hips-0.3.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 29.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for mapproxy_hips-0.3.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1b637a75b731470d945caaeb2849d3661a7d133618578742be8a08acbf625e67
MD5 54eca1297bdad260aad4d073d3f21cde
BLAKE2b-256 28ca32d8a1966905d0da9b4a2c1cfc1ac29735905a0c1b8fcd173651f1e95eb0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page