From e451d51efcf56031a6e7b0b175269ea393ca2214 Mon Sep 17 00:00:00 2001 From: RoryPTB <47696929+RoryPTB@users.noreply.github.com> Date: Fri, 9 Jun 2023 10:25:14 +0200 Subject: [PATCH 1/2] Added encoding of station height and changed default log level to warning --- Dockerfile | 4 ++-- synop2bufr/__init__.py | 3 ++- synop2bufr/cli.py | 2 +- synop2bufr/resources/synop-mappings.json | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 442db3fe..fcab31a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,8 +11,8 @@ RUN echo "Acquire::Check-Valid-Until \"false\";\nAcquire::Check-Date \"false\";" && apt-get update -y \ && apt-get install -y ${DEBIAN_PACKAGES} \ && apt-get install -y python3 python3-pip libeccodes-tools \ - && pip3 install --no-cache-dir https://github.com/wmo-im/csv2bufr/archive/refs/tags/v0.5.1.zip \ - && pip3 install --no-cache-dir https://github.com/wmo-im/pymetdecoder/archive/refs/tags/v0.1.3.zip + && pip3 install --no-cache-dir https://github.com/wmo-im/csv2bufr/archive/refs/tags/v0.6.3.zip \ + && pip3 install --no-cache-dir https://github.com/wmo-im/pymetdecoder/archive/refs/tags/v0.1.7.zip ENV LOG_LEVEL=INFO diff --git a/synop2bufr/__init__.py b/synop2bufr/__init__.py index 888a0d5f..3c492b98 100644 --- a/synop2bufr/__init__.py +++ b/synop2bufr/__init__.py @@ -33,7 +33,7 @@ from csv2bufr import BUFRMessage from pymetdecoder import synop -__version__ = '0.4.dev1' +__version__ = '0.4.1' LOGGER = logging.getLogger(__name__) @@ -1280,6 +1280,7 @@ def transform(data: str, metadata: str, year: int, msg['_wsi_local'] = wsi_local msg['_latitude'] = latitude msg['_longitude'] = longitude + msg['_station_height'] = station_height conversion_success[tsi] = True except Exception: conversion_success[tsi] = False diff --git a/synop2bufr/cli.py b/synop2bufr/cli.py index 3bb8daa3..95e925cf 100644 --- a/synop2bufr/cli.py +++ b/synop2bufr/cli.py @@ -30,7 +30,7 @@ # Configure logger LOGGER = logging.getLogger() -log_level = os.environ.get("LOG_LEVEL", "ERROR") +log_level = os.environ.get("LOG_LEVEL", "WARNING") logging.basicConfig( format="%(asctime)s [%(levelname)s] %(message)s", level=getattr(logging, log_level), diff --git a/synop2bufr/resources/synop-mappings.json b/synop2bufr/resources/synop-mappings.json index 39a5cc36..6e78ae0a 100644 --- a/synop2bufr/resources/synop-mappings.json +++ b/synop2bufr/resources/synop-mappings.json @@ -31,6 +31,7 @@ {"eccodes_key": "#1#wigosLocalIdentifierCharacter", "value":"data:_wsi_local"}, {"eccodes_key": "#1#latitude", "value": "data:_latitude"}, {"eccodes_key": "#1#longitude", "value": "data:_longitude"}, + {"eccodes_key": "#1#heightOfStationGroundAboveMeanSeaLevel", "value":"data:_station_height"}, {"eccodes_key": "#1#blockNumber", "value": "data:block_no"}, {"eccodes_key": "#1#stationNumber", "value": "data:station_no"}, {"eccodes_key": "#1#stationOrSiteName", "value": "data:station_id"}, From c0ac29d77b5fbd7a4612a758d01042b86db0faa7 Mon Sep 17 00:00:00 2001 From: RoryPTB <47696929+RoryPTB@users.noreply.github.com> Date: Fri, 9 Jun 2023 10:42:56 +0200 Subject: [PATCH 2/2] Updated bufr unit test --- tests/test_synop2bufr.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_synop2bufr.py b/tests/test_synop2bufr.py index e3ebb4bb..d80841d9 100644 --- a/tests/test_synop2bufr.py +++ b/tests/test_synop2bufr.py @@ -134,9 +134,9 @@ def test_bufr(multiple_messages, metadata_string): msgs = {} for item in result: msgs[item['_meta']['id']] = item - assert msgs['WIGOS_0-20000-0-15015_20220321T120000']['_meta']['properties']['md5'] == '4adee1b8af9b257653f6fe724bd83744' # noqa - assert msgs['WIGOS_0-20000-0-15020_20220321T120000']['_meta']['properties']['md5'] == '52f2ed9ec19a76f88325159da3c5a850' # noqa - assert msgs['WIGOS_0-20000-0-15090_20220321T120000']['_meta']['properties']['md5'] == '8c0d5d44f1673447530181559d23f2f0' # noqa + assert msgs['WIGOS_0-20000-0-15015_20220321T120000']['_meta']['properties']['md5'] == 'c99408ed63070de0919208b23aacbbd2' # noqa + assert msgs['WIGOS_0-20000-0-15020_20220321T120000']['_meta']['properties']['md5'] == '40a5cc35b454da20c14af88c711d071f' # noqa + assert msgs['WIGOS_0-20000-0-15090_20220321T120000']['_meta']['properties']['md5'] == '86bc25026de14f9f1cba2e449740c0cd' # noqa def test_invalid_separation():