Skip to content
Snippets Groups Projects
Metadata.py 17.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • """Simulate metadata service until it is implemented.
    """
    
    
    def get_instrument(observatory, start_time=None, end_time=None, metadata=None):
        """Get instrument metadata
    
        Args:
          observatory: observatory code
          start_time: start time to match, or None to match any.
          end_time: end time to match, or None to match any.
          metadata: use custom list, defaults to _INSTRUMENT_METADATA
        Returns:
          list of matching metadata
        """
        metadata = metadata or _INSTRUMENT_METADATA
        return [
            m
            for m in metadata
    
            if m["station"] == observatory
            and (end_time is None or m["start_time"] is None or m["start_time"] < end_time)
            and (start_time is None or m["end_time"] is None or m["end_time"] > start_time)
    
        ]
    
    
    """
    To make this list easier to maintain:
     - List NT network stations first, then other networks in alphabetical order
     - Within networks, alphabetize by station, then start_time.
    """
    _INSTRUMENT_METADATA = [
        {
            "network": "NT",
            "station": "BDT",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "FGE",
                "channels": {
                    # each channel maps to a list of components to calculate nT
                    # TODO: calculate these lists based on "FGE" type
    
                    "U": [{"channel": "U_Volt", "offset": 20613, "scale": 313.2}],
    
                    "V": [{"channel": "V_Volt", "offset": 0, "scale": 312.3}],
    
                    "W": [{"channel": "W_Volt", "offset": 47450, "scale": 312.0}],
    
                },
                "electronics": {
                    "serial": "E0542",
                    # these scale values are used to convert voltage
                    "x-scale": 313.2,  # V/nT
                    "y-scale": 312.3,  # V/nT
                    "z-scale": 312.0,  # V/nT
                    "temperature-scale": 0.01,  # V/K
                },
                "sensor": {
                    "serial": "S0419",
                    # these constants combine with instrument setting for offset
                    "x-constant": 36958,  # nT/mA
                    "y-constant": 36849,  # nT/mA
                    "z-constant": 36811,  # nT/mA
                },
            },
        },
    
        {
            "network": "NT",
            "station": "BOU",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "BXX",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "BRT",
            "start_time": None,
            "end_time": None,
    
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 506},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 505.6},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 506},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "BRW",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 506},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 505.6},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 506},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "BSL",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "CMO",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 99.4},
                        {"channel": "U_Bin", "offset": 0, "scale": 502.5},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 101.5},
                        {"channel": "V_Bin", "offset": 0, "scale": 512.5},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100.98},
                        {"channel": "W_Bin", "offset": 0, "scale": 509.15},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "CMT",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "FGE",
                "channels": {
                    # each channel maps to a list of components to calculate nT
                    # TODO: calculate these lists based on "FGE" type
                    "U": [{"channel": "U_Volt", "offset": 0, "scale": 967.7}],
                    "V": [{"channel": "V_Volt", "offset": 0, "scale": 969.7}],
                    "W": [{"channel": "W_Volt", "offset": 0, "scale": 973.4}],
                },
                "electronics": {
                    "serial": "E0568",
                    # these scale values are used to convert voltage
                    "x-scale": 967.7,  # V/nT
                    "y-scale": 969.7,  # V/nT
                    "z-scale": 973.4,  # V/nT
                    "temperature-scale": 0.01,  # V/K
                },
                "sensor": {
                    "serial": "S0443",
                    # these constants combine with instrument setting for offset
                    "x-constant": 37062,  # nT/mA
                    "y-constant": 37141,  # nT/mA
                    "z-constant": 37281,  # nT/mA
                },
            },
        },
    
        {
            "network": "NT",
            "station": "DED",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 508.20},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 508.40},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 508.03},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "FDT",
            "start_time": None,
            "end_time": None,
    
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "FRD",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
        {
            "network": "NT",
            "station": "FRN",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 98.48},
                        {"channel": "U_Bin", "offset": 0, "scale": 497.50},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100.60},
                        {"channel": "V_Bin", "offset": 0, "scale": 506},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 99},
                        {"channel": "W_Bin", "offset": 0, "scale": 501},
                    ],
                },
            },
        },
        {
            "network": "NT",
            "station": "HON",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "NEW",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "LLO",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "SHU",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 505},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 505},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 505},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "SIT",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
        {
            "network": "NT",
            "station": "SJG",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },
    
        {
            "network": "NT",
            "station": "SJT",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "FGE",
                "channels": {
                    # each channel maps to a list of components to calculate nT
                    # TODO: calculate these lists based on "FGE" type
                    "U": [{"channel": "U_Volt", "offset": 0, "scale": 320.0}],
                    "V": [{"channel": "V_Volt", "offset": 0, "scale": 320.0}],
                    "W": [{"channel": "W_Volt", "offset": 0, "scale": 320.0}],
                },
                ## this info should get updated when available
                # "electronics": {
                #     "serial": "E0542",
                #     # these scale values are used to convert voltage
                #     "x-scale": 313.2,  # V/nT
                #     "y-scale": 312.3,  # V/nT
                #     "z-scale": 312.0,  # V/nT
                #     "temperature-scale": 0.01,  # V/K
                # },
                # "sensor": {
                #     "serial": "S0419",
                #     # these constants combine with instrument setting for offset
                #     "x-constant": 36958,  # nT/mA
                #     "y-constant": 36849,  # nT/mA
                #     "z-constant": 36811,  # nT/mA
                # },
            },
        },
    
        {
            "network": "NT",
            "station": "TUC",
            "start_time": None,
            "end_time": None,
            "instrument": {
                "type": "Narod",
                "channels": {
                    "U": [
                        {"channel": "U_Volt", "offset": 0, "scale": 100},
                        {"channel": "U_Bin", "offset": 0, "scale": 500},
                    ],
                    "V": [
                        {"channel": "V_Volt", "offset": 0, "scale": 100},
                        {"channel": "V_Bin", "offset": 0, "scale": 500},
                    ],
                    "W": [
                        {"channel": "W_Volt", "offset": 0, "scale": 100},
                        {"channel": "W_Bin", "offset": 0, "scale": 500},
                    ],
                },
            },
        },