diff --git a/imap_processing/ialirt/constants.py b/imap_processing/ialirt/constants.py index 51705a37a7..9ea031db45 100644 --- a/imap_processing/ialirt/constants.py +++ b/imap_processing/ialirt/constants.py @@ -50,10 +50,14 @@ class StationProperties(NamedTuple): min_elevation_deg: float # minimum elevation angle in degrees -# Verified by Kiel and KSWC Observatory staff. -# Notes: the KSWC station is not yet operational, -# but will have the following properties: +# Verified by Observatory staff. STATIONS = { + "Formosa": StationProperties( + longitude=-47.256408, # degrees East (negative = West) + latitude=-15.578032, # degrees North (negative = South) + altitude=0.968, # kilometers (~968 meters) + min_elevation_deg=5, # 5 degrees is the requirement + ), "Kiel": StationProperties( longitude=10.1808, # degrees East latitude=54.2632, # degrees North @@ -67,9 +71,9 @@ class StationProperties(NamedTuple): min_elevation_deg=5, # 5 degrees is the requirement ), "Manaus": StationProperties( - longitude=-59.969334, # degrees East (negative = West) - latitude=-2.891257, # degrees North (negative = South) - altitude=0.1, # approx 100 meters + longitude=-59.969319, # degrees East (negative = West) + latitude=-2.891215, # degrees North (negative = South) + altitude=0.9578, # approx 957.8 meters min_elevation_deg=5, # 5 degrees is the requirement ), "SANSA": StationProperties( diff --git a/imap_processing/ialirt/l0/process_hit.py b/imap_processing/ialirt/l0/process_hit.py index 8aaf42a87c..974b7d2d49 100644 --- a/imap_processing/ialirt/l0/process_hit.py +++ b/imap_processing/ialirt/l0/process_hit.py @@ -142,6 +142,18 @@ def process_hit(xarray_data: xr.Dataset) -> list[dict]: unique_groups = np.unique(grouped_data["group"]) for group in unique_groups: + status_values = grouped_data["hit_status"][ + (grouped_data["group"] == group).values + ] + + if np.any(status_values == 0): + logger.info( + f"Off-nominal value detected at " + f"missing or duplicate pkt_counter values: " + f"{group}" + ) + continue + # Subcom values for the group should be 0-59 with no duplicates. subcom_values = grouped_data["hit_subcom"][ (grouped_data["group"] == group).values