Skip to content
Snippets Groups Projects
Commit 51ea697a authored by Paul Eckhardt's avatar Paul Eckhardt
Browse files

ADD eanet_filter

parent b62bbd7a
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python
# coding=utf-8
"""
Convert EANET filter measurements files to ebas
"""
FILTER_PERSON_DEFAULT = [{
'PS_LAST_NAME': 'EANET',
'PS_FIRST_NAME': 'EXPORT',
'PS_EMAIL': None,
'PS_ORG_NAME': None,
'PS_ORG_ACR': None,
'PS_ORG_UNIT': None,
'PS_ADDR_LINE1': None,
'PS_ADDR_LINE2': None,
'PS_ADDR_ZIP': None,
'PS_ADDR_CITY': None,
'PS_ADDR_COUNTRY': None,
'PS_ORCID': None,
}]
FILTER_PROJECT_DEFAULT = ['EANET']
JP_ORG_DEFAULT = {
'OR_CODE': 'JP99L',
'OR_NAME': 'unknown',
'OR_ACRONYM': None,
'OR_UNIT': None,
'OR_ADDR_LINE1': None,
'OR_ADDR_LINE2': None,
'OR_ADDR_ZIP': None,
'OR_ADDR_CITY': None,
'OR_ADDR_COUNTRY': None,
}
EANET_SITES = {
#ID:
'IDA001': {
'EANET': {
'site_name': 'Jakarta',
},
'EBAS': {
'station_code': 'ID1012U',
'platform_code': 'ID1012S',
'station_name': 'Jakarta',
'station_latitude': -6.156111,
'station_longitude': 106.842222,
'station_altitude': 7,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'IDA002': {
'EANET': {
'site_name': 'Serpong',
},
'EBAS': {
'station_code': 'ID1014R',
'platform_code': 'ID1014S',
'station_name': 'Serpong',
'station_latitude': -6.349497,
'station_longitude': 106.665967,
'station_altitude': 64,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'IDA003': {
'EANET': {
'site_name': 'Kototabang',
},
'EBAS': {
'station_code': 'ID1013R',
'platform_code': 'ID1013S',
'station_name': 'Bukit Kototabang',
'station_latitude': -0.202222,
'station_longitude': 100.318056,
'station_altitude': 845,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'IDA004': {
'EANET': {
'site_name': 'Bandung',
},
'EBAS': {
'station_code': 'ID1015U',
'platform_code': 'ID1015S',
'station_name': 'Bandung',
'station_latitude': -6.894722,
'station_longitude': 107.586389,
'station_altitude': 753,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'IDA005': {
'EANET': {
'site_name': 'Maros',
},
'EBAS': {
'station_code': 'ID1001R',
'platform_code': 'ID1001S',
'station_name': 'Maros',
'station_latitude': -4.997222,
'station_longitude': 119.571389,
'station_altitude': 1,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#MY
'MYA001': {
'EANET': {
'site_name': 'Petaling Jaya',
},
'EBAS': {
'station_code': 'MY1029U',
'platform_code': 'MY1029S',
'station_name': 'Petaling Jaya',
'station_latitude': 3.101944,
'station_longitude': 101.645000,
'station_altitude': 51,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'MYA002': {
'EANET': {
'site_name': 'Tanah Rata',
},
'EBAS': {
'station_code': 'MY1030R',
'platform_code': 'MY1030S',
'station_name': 'Tanah Rata',
'station_latitude': 4.484167,
'station_longitude': 101.371389,
'station_altitude': 1545,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'MYA003': {
'EANET': {
'site_name': 'Danum Valley',
},
'EBAS': {
'station_code': 'MY1053R',
'platform_code': 'MY1053S',
'station_name': 'Danum Valley',
'station_latitude': 4.981389,
'station_longitude': 117.843611,
'station_altitude': 438,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'MYA004': {
'EANET': {
'site_name': 'Kuching',
},
'EBAS': {
'station_code': 'MY0001U',
'platform_code': 'MY0001S',
'station_name': 'Kuching',
'station_latitude': 1.490278,
'station_longitude': 110.352500,
'station_altitude': 20,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#MM:
'MMA001': {
'EANET': {
'site_name': 'Yangon',
},
'EBAS': {
'station_code': 'MM1056U',
'platform_code': 'MM1056S',
'station_name': 'Yangon',
'station_latitude': 16.864722,
'station_longitude': 96.153611,
'station_altitude': 21,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'MMA002': {
'EANET': {
'site_name': 'Mandalay',
},
'EBAS': {
'station_code': 'MM1002U',
'platform_code': 'MM1002S',
'station_name': 'Mandalay',
'station_latitude': 21.912778,
'station_longitude': 96.064167,
'station_altitude': 70,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#PH:
'PHA001': {
'EANET': {
'site_name': 'Metro Manila',
},
'EBAS': {
'station_code': 'PH1033U',
'platform_code': 'PH1033S',
'station_name': 'Metro Manila',
'station_latitude': 14.635833,
'station_longitude': 121.078611,
'station_altitude': 55,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'PHA002': {
'EANET': {
'site_name': 'Los Banos',
},
'EBAS': {
'station_code': 'PH1034R',
'platform_code': 'PH1034S',
'station_name': 'Los Banos',
'station_latitude': 14.164722,
'station_longitude': 121.250000,
'station_altitude': 25,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'PHA003': {
'EANET': {
'site_name': 'Mt. Sto. Tomas',
},
'EBAS': {
'station_code': 'PH1055R',
'platform_code': 'PH1055S',
'station_name': 'Mt. Sto. Tomas',
'station_latitude': 16.356287,
'station_longitude': 120.559085,
'station_altitude': 1500,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#KR:
'KRA001': {
'EANET': {
'site_name': 'Kanghwa',
},
'EBAS': {
'station_code': 'KR1035R',
'platform_code': 'KR1035S',
'station_name': 'Kanghwa',
'station_latitude': 37.708889,
'station_longitude': 126.273889,
'station_altitude': 60,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'KRA002': {
'EANET': {
'site_name': 'Cheju',
# 'site_name': 'Cheju (Kosan)',
},
'EBAS': {
'station_code': 'KR1036R',
'platform_code': 'KR1036S',
'station_name': 'Cheju',
'station_latitude': 33.292222,
'station_longitude': 126.161944,
'station_altitude': 37,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'KRA003': {
'EANET': {
'site_name': 'Imsil',
},
'EBAS': {
'station_code': 'KR1037R',
'platform_code': 'KR1037S',
'station_name': 'Imsil',
'station_latitude': 35.602500,
'station_longitude': 127.181389,
'station_altitude': 217,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#RU:
'RUA001': {
'EANET': {
'site_name': 'Mondy',
},
'EBAS': {
'station_code': 'RU1038R',
'platform_code': 'RU1038S',
'station_name': 'Mondy',
'station_latitude': 51.621667,
'station_longitude': 100.919444,
'station_altitude': 1996,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'RUA002': {
'EANET': {
'site_name': 'Listvyanka',
},
'EBAS': {
'station_code': 'RU1039R',
'platform_code': 'RU1039R',
'station_name': 'Listvyanka',
'station_latitude': 51.846389,
'station_longitude': 104.892778,
'station_altitude': 646,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'RUA003': {
'EANET': {
'site_name': 'Irkutsk',
},
'EBAS': {
'station_code': 'RU1040',
'platform_code': 'RU1040',
'station_name': 'Irkutsk',
'station_latitude': 52.248056,
'station_longitude': 104.259167,
'station_altitude': 495,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'RUA004': {
'EANET': {
'site_name': 'Primorskaya',
},
'EBAS': {
'station_code': 'RU1041R',
'platform_code': 'RU1041S',
'station_name': 'Primorskaya',
'station_latitude': 43.629167,
'station_longitude': 132.236944,
'station_altitude': 8,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#TH:
'THA001': {
'EANET': {
'site_name': 'Bangkok',
},
'EBAS': {
'station_code': 'TH1042U',
'platform_code': 'TH1042S',
'station_name': 'Bangkok',
'station_latitude': 13.784444,
'station_longitude': 100.539444,
'station_altitude': 5,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'THA002': {
'EANET': {
'site_name': 'Samut Prakan',
},
'EBAS': {
'station_code': 'TH1043U',
'platform_code': 'TH1043S',
'station_name': 'Samut Prakan',
'station_latitude': 13.666111, 100.605833 4
'station_longitude':
'station_altitude':
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'THA003': {
'EANET': {
'site_name': 'Patum Thani',
},
'EBAS': {
'station_code': 'TH1044R',
'platform_code': 'TH1044S',
'station_name': 'Patum Thani',
'station_latitude': 14.046111,
'station_longitude': 100.711944,
'station_altitude': 6,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'THA004': {
'EANET': {
'site_name': 'Vachiralongkorn Dam - Khanchanaburi',
# 'site_name': 'Khanchanaburi',
},
'EBAS': {
'station_code': 'TH1045R',
'platform_code': 'TH1045S',
'station_name': 'Vachiralongkorn Dam - Khanchanaburi',
'station_latitude': 14.784722,
'station_longitude': 98.601389,
'station_altitude': 130,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'THA005': {
'EANET': {
'site_name': 'Chiang Mai - Mae Hia',
},
'EBAS': {
'station_code': 'TH1046R',
'platform_code': 'TH1046S',
'station_name': 'Chiang Mai - Mae Hia',
'station_latitude': 18.761111,
'station_longitude': 98.931667,
'station_altitude': 349,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'THA006': {
'EANET': {
'site_name': 'Chiang Mai - Chang Phueak',
},
'EBAS': {
'station_code': 'TH1006U',
'platform_code': 'TH1006S',
'station_name': 'Chiang Mai - Chang Phueak',
'station_latitude': 18.840556,
'station_longitude': 98.969722,
'station_altitude': 329,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'THA008': {
'EANET': {
'site_name': 'Nakhon Ratchasima - Sakaerat',
},
'EBAS': {
'station_code': 'THH1054R',
'platform_code': 'THSH1054',
'station_name': 'Nakhon Ratchasima - Sakaerat',
'station_latitude': 14.467778,
'station_longitude': 101.901389,
'station_altitude': 409,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'THA009': {
'EANET': {
'site_name': 'Nakhon Ratchasima - Nai Mueang',
},
'EBAS': {
'station_code': 'TH1009U',
'platform_code': 'TH1009S',
'station_name': 'Nakhon Ratchasima - Nai Mueang',
'station_latitude': 14.979444,
'station_longitude': 102.098056,
'station_altitude': 184,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#VN:
'VNA001': {
'EANET': {
'site_name': 'Hanoi',
},
'EBAS': {
'station_code': 'VN1047U',
'platform_code': 'VN1047S',
'station_name': 'Hanoi',
'station_latitude': 21.056667,
'station_longitude': 105.726667,
'station_altitude': 6,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'VNA002': {
'EANET': {
'site_name': 'Hoa Binh',
},
'EBAS': {
'station_code': 'VN1048R',
'platform_code': 'VN1048R',
'station_name': 'Hoa Binh',
'station_latitude': 20.836667,
'station_longitude': 105.342222,
'station_altitude': 23,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'VNA003': {
'EANET': {
'site_name': 'Cuc Phuong',
},
'EBAS': {
'station_code': 'VN1003R',
'platform_code': 'VN1003S',
'station_name': 'Cuc Phuong',
'station_latitude': 20.300278,
'station_longitude': 105.693889,
'station_altitude': 155,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'VNA004': {
'EANET': {
'site_name': 'Da Nang',
},
'EBAS': {
'station_code': 'VN1004U',
'platform_code': 'VN1004S',
'station_name': 'Da Nang',
'station_latitude': 16.043056,
'station_longitude': 108.206667,
'station_altitude': 5,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'VNA005': {
'EANET': {
'site_name': 'Can Tho',
},
'EBAS': {
'station_code': 'VN1005U',
'platform_code': 'VN1005S',
'station_name': 'Can Tho',
'station_latitude': 10.088333,
'station_longitude': 105.695833,
'station_altitude': 2,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'VNA006': {
'EANET': {
'site_name': 'Ho Chi Minh',
},
'EBAS': {
'station_code': 'VN1006U',
'platform_code': 'VN1006S',
'station_name': ' Ho Chi Minh',
'station_latitude': 10.784444,
'station_longitude': 106.700000,
'station_altitude': 5,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'VNA007': {
'EANET': {
'site_name': 'Yen Bai',
},
'EBAS': {
'station_code': 'VN1007U',
'platform_code': 'VN1007S',
'station_name': 'Yen Bai',
'station_latitude': 21.707778,
'station_longitude': 104.874722,
'station_altitude': 56,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#KH:
'KHA001': {
'EANET': {
'site_name': 'Phnom Penh',
},
'EBAS': {
'station_code': 'KH1052U',
'platform_code': 'KH1052S',
'station_name': 'Phnom Penh',
'station_latitude': 11.555000,
'station_longitude': 104.938889,
'station_altitude': 12,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
#JP:
'JPA001': {
'EANET': {
'site_name': 'Rishiri',
},
'EBAS': {
'station_code': 'JP1016R',
'platform_code': 'JP1016R',
'station_name': 'Rishiri',
'station_latitude': 45.125000,
'station_longitude': 141.241667,
'station_altitude': 40.0,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA002': {
'EANET': {
'site_name': 'Ochiishi',
},
'EBAS': {
'station_code': 'JP1050R',
'platform_code': 'JP1050R',
'station_name': 'Ochiishi',
'station_latitude': 43.161944,
'station_longitude': 145.497222,
'station_altitude': 49.0,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA003': {
'EANET': {
'site_name': 'Tappi',
},
'EBAS': {
'station_code': 'JP1017R',
'platform_code': 'JP1017S',
'station_name': 'Tappi',
'station_latitude': 41.251667,
'station_longitude': 140.350278,
'station_altitude': 106,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA004': {
'EANET': {
'site_name': 'Sadoseki',
},
'EBAS': {
'station_code': 'JP1019R',
'platform_code': 'JP1019S',
'station_name': 'Sado-seki',
'station_latitude': 38.250556,
'station_longitude': 138.400278,
'station_altitude': 129,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA005': {
'EANET': {
'site_name': 'Happo',
},
'EBAS': {
'station_code': 'JP1021R',
'platform_code': 'JP1021S',
'station_name': 'Happo',
'station_latitude': 36.696667,
'station_longitude': 137.798056,
'station_altitude': 1850,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA006': {
'EANET': {
'site_name': 'Ijira',
},
'EBAS': {
'station_code': 'JP1022R',
'platform_code': 'JP1022S',
'station_name': 'Ijira',
'station_latitude': 35.569444,
'station_longitude': 136.698250,
'station_altitude': 140,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA007': {
'EANET': {
'site_name': 'Oki',
},
'EBAS': {
'station_code': 'JP1023R',
'platform_code': 'JP1023S',
'station_name': 'Oki',
'station_latitude': 36.288611,
'station_longitude': 133.185000,
'station_altitude': 90,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA008': {
'EANET': {
'site_name': 'Banryu',
},
'EBAS': {
'station_code': 'JP1024U',
'platform_code': 'JP1024U',
'station_name': 'Banryu',
'station_latitude': 34.681667,
'station_longitude': 131.799722,
'station_altitude': 53,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA009': {
'EANET': {
'site_name': 'Yusuhara',
},
'EBAS': {
'station_code': 'JP1025R',
'platform_code': 'JP1025S',
'station_name': 'Yusuhara',
'station_latitude': 33.379444,
'station_longitude': 132.935000,
'station_altitude': 790,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA010': {
'EANET': {
'site_name': 'Hedo',
},
'EBAS': {
'station_code': 'JP1027R',
'platform_code': 'JP1027S',
'station_name': 'Hedo',
'station_latitude': 26.866111,
'station_longitude': 128.248611,
'station_altitude': 60,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA011': {
'EANET': {
'site_name': 'Ogasawara',
},
'EBAS': {
'station_code': 'JP1018R',
'platform_code': 'JP1018S',
'station_name': 'Ogasawara',
'station_latitude': 27.092222,
'station_longitude': 142.217222,
'station_altitude': 212,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'JPA012': {
'EANET': {
'site_name': 'Tokyo',
},
'EBAS': {
'station_code': 'JP1057U',
'platform_code': 'JP1057S',
'station_name': 'Tokyo',
'station_latitude': 35.691667,
'station_longitude': 139.752778,
'station_altitude': 26,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'MNA001': {
'EANET': {
'site_name': 'Ulaanbaatar',
},
'EBAS': {
'station_code': 'MN1031U',
'platform_code': 'MN1031S',
'station_name': 'Ulaanbaatar',
'station_latitude': 47.920278,
'station_longitude': 106.911944,
'station_altitude': 1303,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
'MNA002': {
'EANET': {
'site_name': 'Terelj',
},
'EBAS': {
'station_code': 'MN1032R',
'platform_code': 'MN1032S',
'station_name': 'Ulaanbaatar',
'station_latitude': 47.983056,
'station_longitude': 107.451111,
'station_altitude': 1557,
# 'instr_type': defined for filter/precip
# 'lab_code': defined for filter/precip
# 'instr_name': defined for filter/precip
# 'method': defined for filter/precip
# 'originator': defined for filter/precip
# 'submitter': defined for filter/precip
'projects': FILTER_PROJECT_DEFAULT,
},
},
}
####
#### Precipitation
####
# Metadata hirarchy:
# 1) First PRECIP_GLOBAL is used
# 2) then EANET_SITES overrules
# 3) for each paraeter PRECIP_PARAMS
# 4) in EANET_PRECIP_DETAIL, site and paramter specific metadata
PRECIP_GLOBAL = {
'EANET': {},
'EBAS': {
}
}
# Organisation mapping (only allpies to precip files, which has laboratory name)
# Maps the EANET lab name to ebas org metadata which will be used in line 2
# Additionally, the OR_CODE is used as lab_code.
# As a special case, the lab code wil also be used to construct the method ref
# (method metadata are given as special "#method_name", which means the
# method ref is constructed in the conversion script)
EANET_ORGANISATIONS = {
'Institute of Environmental Sciences, Hokkaido Research Organization': {
'OR_CODE': 'JP03L',
'OR_NAME': 'Hokkaido Institute of Environmental Sciences',
'OR_ACRONYM': None,
'OR_UNIT': None,
'OR_ADDR_LINE1': 'Kita-19 Nishi-12 Kita-ku',
'OR_ADDR_LINE2': None,
'OR_ADDR_ZIP': '060',
'OR_ADDR_CITY': 'Sapporo-city',
'OR_ADDR_COUNTRY': 'Japan',
}
}
EANET_PRECIP_PARAM = {
'SO4': {
'EANET': {
'form_number': 0,
'variable_name': 'SO42-',
'unit': 'umol L-1',
},
'EBAS': {
'regime': 'IMG',
'matrix': 'precip',
'comp_name': 'sulphate_total',
'statistics': 'arithmetic mean',
'unit': 'umol/l',
},
},
'Conductivity': {
'EANET': {
'form_number': 2,
'variable_name': 'EC',
'unit': 'mS m-1',
},
'EBAS': {
'regime': 'IMG',
'matrix': 'precip',
'comp_name': 'conductivity',
'statistics': 'arithmetic mean',
'unit': 'mS/m',
},
},
'Amount': {
'EANET': {
'form_number': 2,
'variable_name': 'Amount of precipitation',
'unit': 'mm',
},
'EBAS': {
'regime': 'IMG',
'matrix': 'precip',
'comp_name': 'precipitation_amount_off',
'statistics': 'arithmetic mean',
'unit': 'mm',
},
},
}
EANET_PRECIP_DETAIL = {
'JPA001': {
'Amount': {
'EANET': {},
'EBAS': {
'instr_type': 'precip_gauge',
'instr_name': 'precip_gauge_jp1016',
'#method_name': 'prec',
}
},
'Conductivity': {
'EANET': {},
'EBAS': {
'instr_type': 'wet_only_sampler',
'instr_name': 'wet_only_jp1016',
'#method_name': 'cond_meter',
}
},
None: { # default
'EANET': {},
'EBAS': {
'instr_type': 'wet_only_sampler',
'instr_name': 'wet_only_jp1016',
'#method_name': 'IC',
}
},
},
}
####
#### Filter
####
# Metadata hirarchy:
# 1) First FILTER_GLOBAL is used
# 2) then EANET_SITES overrules
# 3) for each paraeter FILTER_PARAMS
# 4) in EANET_FILTER_DETAIL, site and paramter specific metadata
FILTER_GLOBAL = {
'EANET': {},
'EBAS': {
'datalevel': '2',
}
}
FILTER_PARAMS = {
'SO2': {
'EANET': {
'unit': 'ppb',
},
'EBAS': {
'matrix': 'air',
'comp_name': 'sulphur_dioxide',
'unit': 'nmol/mol',
},
},
'HNO3': {
'EANET': {
'unit': 'ppb',
},
'EBAS': {
'matrix': 'air',
'comp_name': 'nitric_acid',
'unit': 'nmol/mol',
},
},
'HCl': {
'EANET': {
'unit': 'ppb',
},
'EBAS': {
'matrix': 'air',
'comp_name': 'hydrochloric_acid',
'unit': 'nmol/mol',
},
},
'NH3': {
'EANET': {
'unit': 'ppb',
},
'EBAS': {
'matrix': 'air',
'comp_name': 'ammonia',
'unit': 'nmol/mol',
},
},
'SO42-': {
'EANET': {
'unit': 'ug/m3',
},
'EBAS': {
'matrix': 'aerosol',
'comp_name': 'sulphate_total',
'unit': 'ug/m3',
},
},
'NO3-': {
'EANET': {
'unit': 'ug/m3',
},
'EBAS': {
'matrix': 'aerosol',
'comp_name': 'nitrate',
'unit': 'ug/m3',
},
},
'Cl-': {
'EANET': {
'unit': 'ug/m3',
},
'EBAS': {
'matrix': 'aerosol',
'comp_name': 'chloride',
'unit': 'ug/m3',
},
},
'NH4+': {
'EANET': {
'unit': 'ug/m3',
},
'EBAS': {
'matrix': 'aerosol',
'comp_name': 'ammonium',
'unit': 'ug/m3',
},
},
'Na+': {
'EANET': {
'unit': 'ug/m3',
},
'EBAS': {
'matrix': 'aerosol',
'comp_name': 'sodium',
'unit': 'ug/m3',
},
},
'K+': {
'EANET': {
'unit': 'ug/m3',
},
'EBAS': {
'matrix': 'aerosol',
'comp_name': 'potassium',
'unit': 'ug/m3',
},
},
'Mg2+': {
'EANET': {
'unit': 'ug/m3',
},
'EBAS': {
'matrix': 'aerosol',
'comp_name': 'magnesium',
'unit': 'ug/m3',
},
},
'Ca2+': {
'EANET': {
'unit': 'ug/m3',
},
'EBAS': {
'matrix': 'aerosol',
'comp_name': 'calcium',
'unit': 'ug/m3',
},
},
}
# Metadata hirarchy:
# 1) First EANET_SITES is used
# 2) then for each paraeter FILTER_PARAMS
# 3) in EANET_FILTER, site specific metadata can be set specifically for
# filter conversion
EANET_FILTER_DETAIL = {
#ID:
'IDA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_id1012',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'IDA002': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_id1014',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'IDA004': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_id1015',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#MY;
'MYA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_my1029',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'MYA002': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_my1030',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'MYA003': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_my1053',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#MM:
'MMA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_mm1056',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#PH:
'PHA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_ph1033',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'PHA002': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_ph1034',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'PHA003': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_ph1055',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#KR:
'KRA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_3pack',
# 3 Stages with an impactor
'lab_code': 'JP01L',
'instr_name': 'JP_f3p_kr1035',
'method': 'JP01L_f3p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'KRA002': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_3pack',
# 3 Stages with an impactor
'lab_code': 'JP01L',
'instr_name': 'JP_f3p_kr1036',
'method': 'JP01L_f3p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'KRA003': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_3pack',
# 3 Stages with an impactor
'lab_code': 'JP01L',
'instr_name': 'JP_f3p_kr1037',
'method': 'JP01L_f3p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#RU:
'RUA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_ru1038',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'RUA002': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_ru1039',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'RUA003': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_ru1040',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'RUA004': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_ru1041',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#TH:
'THA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_th1042',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'THA003': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_th1044',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'THA004': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_th1045',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'THA005': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_th1046',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'THA008': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_th1054',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#KH:
'KHA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_kh1052',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#VN:
'VNA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_vn1047',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'VNA002': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_vn1048',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'VNA005': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_vn1005',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'VNA006': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_vn1006',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'VNA007': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
# nilu 4 stage
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_vn1007',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#JP:
'JPA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1016',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA002': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1050',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA003': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1017',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA004': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1019',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA005': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1021',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA006': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1022',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA007': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1023',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA008': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1024',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA009': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1025',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA010': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1027',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA011': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1018',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'JPA012': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP99L',
'instr_name': 'JP_f4p_jp1057',
'method': 'JP99L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
#MN:
'MNA001': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_mn1031',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
'MNA002': {
None: { # default parameter
'EANET': {},
'EBAS': {
'org': JP_ORG_DEFAULT,
'instr_type': 'filter_4pack',
'lab_code': 'JP01L',
'instr_name': 'JP_f4p_mn1032',
'method': 'JP01L_f4p',
'originator': FILTER_PERSON_DEFAULT,
'submitter': FILTER_PERSON_DEFAULT,
},
}
},
}
#!/usr/bin/env python
# coding=utf-8
"""
Convert EANET filter measurements files to ebas
"""
import datetime
import logging
import sys
from nilutility.datatypes import DataObject, recursive_data_object
from ebas.commandline import EbasCommandline
from ebas.io.fileset import EbasIOResultSet
from fileformats.EANET import EanetFilter, EanetError
from eanet_cfg import EANET_SITES, FILTER_GLOBAL, FILTER_PARAMS, \
EANET_FILTER_DETAIL
VERSION = '0.01.00'
VERSION_DATE = datetime.datetime(2021, 10, 13)
EANET_SITES = recursive_data_object(EANET_SITES)
FILTER_GLOBAL = recursive_data_object(FILTER_GLOBAL)
FILTER_PARAMS = recursive_data_object(FILTER_PARAMS)
EANET_FILTER_DETAIL = recursive_data_object(EANET_FILTER_DETAIL)
class ConversionError(Exception):
"""
Exception class for general conversion errors.
"""
pass
def add_private_args(parser, ebascmdline): # @UnusedVariable
# pylint: disable=W0613
# W0613 Unused argument
"""
Callback function for commandline.getargs(). Adds private commandline
arguments.
Parameters:
parser root parser object from commandline.getargs()
ebascmdline ebas commandline object
Returns:
None
"""
parser_input_group = parser.add_argument_group('input options')
parser_input_group.add_argument(
'filenames', nargs='*',
help='input file(s), NOAA NMHC flask file format')
def convert_file(eanet_file, revdate):
"""
Converts all variables in the EANET file.
Parameters:
eanet_file the opened eanet file object
Returns:
iterator of tuple for each variable:
(metadata, sample_times, values, flags)
"""
global_meta = DataObject(revdate=revdate)
global_meta.update(FILTER_GLOBAL.EBAS)
global_eanet_meta = DataObject()
global_eanet_meta.update(FILTER_GLOBAL.EANET)
try:
global_eanet_meta.update(EANET_SITES[eanet_file.site_code]['EANET'])
global_meta.update(EANET_SITES[eanet_file.site_code]['EBAS'])
except KeyError:
yield ConversionError("Site '{}' not found in configuration".format(
eanet_file.site_code))
return
if eanet_file.site_name != global_eanet_meta.site_name:
yield ConversionError(
"Site name mismatch: file '{}' inconsistent with "
"configuration".format(eanet_file.file_name))
return
sample_times = eanet_file.sample_times
for var in eanet_file.variables:
metadata = global_meta.copy()
eanet_meta = global_eanet_meta.copy()
try:
eanet_meta.update(FILTER_PARAMS[var.name]['EANET'])
metadata.update(FILTER_PARAMS[var.name]['EBAS'])
except KeyError:
yield ConversionError(
"Parameter '{}' not found in configuration".format(
var.name))
continue
# Update/override metadata from EANET_PRECIP_DETAIL configuration
try:
EANET_FILTER_DETAIL[eanet_file.site_code]
except KeyError:
self._error(
"Site '{}' not found in EANET_FILTER_DETAIL configuration",
eanet_file.site_code)
return
else:
try:
cfg = EANET_FILTER_DETAIL[eanet_file.site_code][var.name]
except KeyError:
try:
cfg = EANET_FILTER_DETAIL[eanet_file.site_code][None]
except KeyError as excpt:
yield ConversionError(
"Configuration error {} / {}/None".format(
eanet_file.site_code, var.name))
return
eanet_meta.update(cfg.EANET)
metadata.update(cfg.EBAS)
if var.unit != eanet_meta.unit:
yield ConversionError(
"Parameter: '{}': EANET unit mismatch between file and "
"configuration".format(var.name))
values = var.samples
flags = var.flags
yield (metadata, sample_times, values, flags)
def eanet_filter(cmdline):
"""
Main program. Entry point and callback from EbasCommandline.
"""
logger = logging.getLogger('eanet_filter')
args = cmdline.args
output_options = cmdline.get_custom_args('FILE_OUTPUT')
errors = 0
fileset = EbasIOResultSet(**output_options)
var_id = 0
revdate = datetime.datetime.utcnow()
for filename in args.filenames:
infil = EanetFilter()
try:
infil.read(filename)
except (EanetError, IOError) as excpt:
logger.error("%s: %s", filename, str(excpt))
errors += 1
continue
for var in convert_file(infil, revdate):
if isinstance(var, Exception):
logger.error("File %s: %s", filename, str(var))
errors += 1
else:
fileset.add_var_non_domain(var_id, *var)
var_id += 1
fileset.extract_all()
logger.info("%s errors", errors)
exitcode = min(255, errors)
sys.exit(exitcode)
# pylint: disable=invalid-name
# (app and year are not constants, and should not be upper case...)
app = EbasCommandline(
eanet_filter,
custom_args=['CONFIG', 'LOGGING', 'FILE_OUTPUT'],
private_args=add_private_args,
help_description='%(prog)s convert data from EANET filter files to EBAS',
version=VERSION, version_date=VERSION_DATE)
app.run()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment