Skip to main content

Single source of truth for ESM's lowcost measurement logistics

Project description

Lowcost Metadata

This repository handles the metadata around the lowcost sensor network in Munich.
We selected this format over putting it in a database due to various reasons:

  • Easy to read, modify and extend by selective group members using GitHub permissions
  • Changes to this are more obvious here than in database logs
  • Versioning (easy to revert mistakes)
  • Automatic testing of the files integrities
  • Easy import as a statically typed Python library

What does this data look like?

There is a set of JSON files in the data folder holding the follwing information:

  • SENSORS.json
    This files contains basic information about the sensors in use in the monitoring network.
{
    "13077": {
        "sensor_type": "LP8",
        "sensor_make": "Decentlab",
        "sensor_model": "DL-LP8",
        "start_up_date": "2022-08-01T08:00:00+00:00",
        "shut_down_date": null,
        "comment": ""
    },
}
  • SITES.json
    This file contains basic information about the sites/locations where sensors have been installed.
{
    "FREV": {
        "site_type": "individual",
        "site_lat": 48.1615591,
        "site_lon": 11.5860387,
        "elevation": 514,
        "comment": "Lamp post ids:55.0"
    },
}
  • SAMPLING.json
    This file contains basic information on which site, at which time, which sensors measured at which configuration. A new key "radiation_shield" was added with version 0.7 as all sensors will be deployed within radiation shieling in near future.
[
    {
        "site_id": "HANV",
        "sensor_ids": [
            13171,
            13147
        ],
        "sampling_start": "2023-05-02T12:30+02:00",
        "sampling_end": null,
        "orientation": 0,
        "elevation_ag": 3,
        "comment": "", 
        "radiation_shield": false
    },
]

How to add new measurement days?

  1. Possibly add new sensor in data/SENSORS.json
  2. Possibly add new site in data/SITES.json
  3. Add a new sampling event to data/SAMPLING.json

If necessary, use this tool to find the elevation of a certain location: https://www.calcmaps.com/map-elevation/

How can I know whether my changes were correct?

Whenever you make changes in the repository on GitHub, the integrity of the files will automatically be checked. You can check whether all tests have passed here.

A list of all integrity checks can be found in tests/README.md.


How to use it in your codebase?

  1. Install python library
poetry add tum_esm_lowcost_metadata
# or
pip install tum_esm_lowcost_metadata
  1. Create a personal access token for a GitHub account that has read access to the metadata repository: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

  2. Use the metadata anywhere

import tum_esm_lowcost_metadata

lowcost_metadata_interface = tum_esm_lowcost_metadata.load_from_github(
    github_repository = "org-name/repo-name",
    access_token = "ghp_..."
)

metadata = lowcost_metadata_interface.get(
    sensor_id = "13077", date = pendulum.datetime(2023, 6, 6)
)  # is of type list[tum_esm_lowcost_metadata.types.SensorDataContext]

metadata = interface.get(sensor_id = '13155', timestamp=pendulum.datetime(2023, 6, 6))
interfaces.print_beautiful(metadata))

... prints out:

Metadata for Sensor 13155, located at MOSV.
---
Sensor type:            Decentlab DL-LP8
Site coordinates:       48.1870436 lat
                        11.5622708 lon
                        508.0 m a.s.l.
Orientation             0.0°
Elevation above ground: 3.0 m
Comment:                Lamp post ids:32.0

---

For Developers: Publish the Package to PyPI

poetry build
poetry publish

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

tum_esm_lowcost_metadata-0.7.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

tum_esm_lowcost_metadata-0.7.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file tum_esm_lowcost_metadata-0.7.0.tar.gz.

File metadata

  • Download URL: tum_esm_lowcost_metadata-0.7.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.13 Darwin/23.4.0

File hashes

Hashes for tum_esm_lowcost_metadata-0.7.0.tar.gz
Algorithm Hash digest
SHA256 ec4c11ca71aca352212ad3314504f35a25daad77b1c5bc00e44df58e9362bc52
MD5 72558aa55bad5a638fe04c2048ef43a3
BLAKE2b-256 913a880ee4d214ae1ab5fb8d66764110aa22376a017b575905aaf3330ac6bdac

See more details on using hashes here.

File details

Details for the file tum_esm_lowcost_metadata-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tum_esm_lowcost_metadata-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bcd5c40d9a2518c1aa1ae73dd120ccc047306b046219c324433ccdf01f85ffeb
MD5 2a9265f3861ca6b5a84e643fc15439f4
BLAKE2b-256 e744fe2d62e9f306911f997c0276b32b90aa705b675f541668abb74b64959095

See more details on using hashes here.

Supported by

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