diff --git a/geomagio/ObservatoryMetadata.py b/geomagio/ObservatoryMetadata.py new file mode 100644 index 0000000000000000000000000000000000000000..b297363514b1781529c67e5b81d26f4555a659a6 --- /dev/null +++ b/geomagio/ObservatoryMetadata.py @@ -0,0 +1,877 @@ +"""Factory that loads metadata for an observatory""" + + +# default metadata for the 14 USGS observatories. +DEFAULT_METADATA = { + 'BDT': { + 'metadata': { + 'station_name': 'Boulder Test', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '40.137', + 'geodetic_longitude': '254.764', + 'elevation': '1682', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 5527, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'BOU': { + 'metadata': { + 'station_name': 'Boulder', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '40.137', + 'geodetic_longitude': '254.764', + 'elevation': '1682', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 5527, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'BRW': { + 'metadata': { + 'station_name': 'Barrow', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '71.322', + 'geodetic_longitude': '203.378', + 'elevation': '12', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 16000, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'data_interval_type': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'BSL': { + 'metadata': { + 'station_name': 'Stennis Space Center', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '30.350', + 'geodetic_longitude': '270.365', + 'elevation': '8', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 1530, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'CMO': { + 'metadata': { + 'station_name': 'College', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '64.874', + 'geodetic_longitude': '212.140', + 'elevation': '197', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 16876, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + } + }, + 'DED': { + 'metadata': { + 'station_name': 'Deadhorse', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '70.356', + 'geodetic_longitude': '211.207', + 'elevation': '10', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 13200, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'FRD': { + 'metadata': { + 'station_name': 'Fredericksburg', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '38.205', + 'geodetic_longitude': '282.627', + 'elevation': '69', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 210942, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'FRN': { + 'metadata': { + 'station_name': 'Fresno', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '37.091', + 'geodetic_longitude': '240.282', + 'elevation': '331', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 9250, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'GUA': { + 'metadata': { + 'station_name': 'Guam', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '13.588', + 'geodetic_longitude': '144.867', + 'elevation': '140', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 1157, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'HON': { + 'metadata': { + 'station_name': 'Honolulu', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '21.316', + 'geodetic_longitude': '202.000', + 'elevation': '4', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 6920, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'NEW': { + 'metadata': { + 'station_name': 'Newport', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '48.265', + 'geodetic_longitude': '242.878', + 'elevation': '770', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 12133, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'SHU': { + 'metadata': { + 'station_name': 'Shumagin', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '55.348', + 'geodetic_longitude': '199.538', + 'elevation': '80', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 13974, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'SIT': { + 'metadata': { + 'station_name': 'Sitka', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '57.058', + 'geodetic_longitude': '224.674', + 'elevation': '24', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 16523, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'SJG': { + 'metadata': { + 'station_name': 'San Juan', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '18.113', + 'geodetic_longitude': '293.849', + 'elevation': '424', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 209800, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'TUC': { + 'metadata': { + 'station_name': 'Tucson', + 'agency_name': 'United States Geological Survey (USGS)', + 'geodetic_latitude': '32.174', + 'geodetic_longitude': '249.267', + 'elevation': '946', + 'sensor_orientation': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'declination_base': 7258, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45) ', + 'filter_comments': ['Vector 1-minute values are computed' + + ' from 1-second values using the INTERMAGNET gaussian' + + ' filter centered on the minute. Scalar 1-minute values' + + ' are computed from 1-second values using the' + + ' INTERMAGNET gaussian filter centered on the minute. '] + }, + 'second': { + 'data_interval_type': 'Average 1-Second' + } + } + }, + 'BLC': { + 'metadata': { + 'station_name': 'Bake Lake', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '64.300', + 'geodetic_longitude': '264.000', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'BRD': { + 'metadata': { + 'station_name': 'Brandon', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '49.600', + 'geodetic_longitude': '262.900', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'CBB': { + 'metadata': { + 'station_name': 'Cambridge Bay', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '69.200', + 'geodetic_longitude': '255.000', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'EUA': { + 'metadata': { + 'station_name': 'Eureka', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '55.300', + 'geodetic_longitude': '282.300', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'FCC': { + 'metadata': { + 'station_name': 'Fort Churchill', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '58.800', + 'geodetic_longitude': '265.900', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'HAD': { + 'metadata': { + 'station_name': 'Hartland', + 'agency_name': 'British Geological Survey (BGS)', + 'geodetic_latitude': '51.000', + 'geodetic_longitude': '355.500', + 'elevation': '0', + 'sensor_orientation': 'HDZF', + 'reported': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'HER': { + 'metadata': { + 'station_name': 'Hermanus', + 'agency_name': 'National Research Foundation', + 'geodetic_latitude': '-34.400', + 'geodetic_longitude': '19.200', + 'elevation': '0', + 'sensor_orientation': 'HDZF', + 'reported': 'HDZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'IQA': { + 'metadata': { + 'station_name': 'Iqaluit', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '63.800', + 'geodetic_longitude': '291.500', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'MEA': { + 'metadata': { + 'station_name': 'Meanook', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '54.600', + 'geodetic_longitude': '246.700', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'OTT': { + 'metadata': { + 'station_name': 'Ottowa', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '45.400', + 'geodetic_longitude': '284.500', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'RES': { + 'metadata': { + 'station_name': 'Resolute Bay', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '74.700', + 'geodetic_longitude': '265.100', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'SNK': { + 'metadata': { + 'station_name': 'Sanikiluaq', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '62.400', + 'geodetic_longitude': '245.500', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'STJ': { + 'metadata': { + 'station_name': 'Saint John\'s', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '47.600', + 'geodetic_longitude': '307.300', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'VIC': { + 'metadata': { + 'station_name': 'Victoria', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '48.600', + 'geodetic_longitude': '236.600', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + }, + 'YKC': { + 'metadata': { + 'station_name': 'Yellow Knife', + 'agency_name': 'Geological Survey of Canada (GSC)', + 'geodetic_latitude': '62.400', + 'geodetic_longitude': '245.500', + 'elevation': '0', + 'sensor_orientation': 'XYZF', + 'reported': 'XYZF', + 'sensor_sampling_rate': 0.01, + 'is_gin': False, + 'is_intermagnet': False, + 'conditions_of_use': 'The Conditions of Use for data provided' + + ' through INTERMAGNET and acknowledgement templates' + + ' can be found at www.intermagnet.org' + }, + 'interval_specific': { + 'minute': { + 'data_interval_type': 'filtered 1-minute (00:15-01:45)' + }, + 'second': { + 'data_interval_type': '' + } + } + } +} + + +DEFAULT_INTERVAL_SPECIFIC = { + 'minute': {'data_interval_type': 'filtered 1-minute (00:15-01:45) '}, + 'second': {'data_interval_type': 'Average 1-Second'} +} + + +class ObservatoryMetadata(object): + """Helper class for providing all the metadata needed for a geomag + timeseries. + Notes + ----- + Currently the only method is set_metadata. Eventually this will probably + pull from a database, or maybe a config file. + """ + + def __init__(self, metadata=None, interval_specific=None): + self.metadata = metadata or DEFAULT_METADATA + self.interval_specific = interval_specific or \ + DEFAULT_INTERVAL_SPECIFIC + + def set_metadata(self, stats, observatory, channel, type, interval): + """Set timeseries metadata (aka a traces stats) + + Parameters + ---------- + stats : obspy.core.trace.stats + the class associated with a given obspy trace, which contains + it's metadata + observatory : string + the observatory code to look up. + channel : str + single character channel {H, E, D, Z, F} + type : {'variation', 'quasi-definitive'} + data type. + interval : {'minute', 'second'} + data interval. + + Returns + ------- + obspy.core.trace.stats + the combined stats and the default metadata. + """ + stats['channel'] = channel + stats['data_interval'] = interval + stats['data_type'] = type + # copy in standard metadata + metadata = self.metadata[observatory]['metadata'] + for key in metadata: + stats[key] = metadata[key] + # copy in interval specific metadata + interval_specific = self.interval_specific + if 'interval_specific' in self.metadata[observatory]: + interval_specific = \ + self.metadata[observatory]['interval_specific'] + # stats['data_interval_type'] = data_interval_type[interval] + for key in interval_specific[interval]: + stats[key] = interval_specific[interval][key]