Spaces:
Running
Running
| import pandas as pd | |
| META_FILE = r"c:\Users\harsh\incois\dashboard\ar_index_global_meta.txt" | |
| PROF_FILE = r"c:\Users\harsh\incois\dashboard\ar_index_global_prof.txt" | |
| df_meta = pd.read_csv(META_FILE, comment="#") | |
| df_meta.columns = df_meta.columns.str.strip() | |
| df_meta['wmo_id'] = df_meta['file'].str.extract(r'/(\d+)/') | |
| df_prof = pd.read_csv(PROF_FILE, comment="#", usecols=['file', 'date', 'institution']) | |
| df_prof.columns = df_prof.columns.str.strip() | |
| df_prof['wmo_id'] = df_prof['file'].str.extract(r'/(\d+)/') | |
| df_prof['date'] = pd.to_datetime(df_prof['date'], format='%Y%m%d%H%M%S', errors='coerce') | |
| # Get earliest profile date | |
| incois_prof = df_prof[df_prof["institution"] == "IN"] | |
| deployments = incois_prof.groupby("wmo_id")["date"].min().reset_index() | |
| # Get all 615 INCOIS meta floats | |
| meta_in = df_meta[df_meta["institution"] == "IN"].copy() | |
| print(f"Meta IN WMOs: {len(meta_in)}") | |
| # Merge | |
| merged = pd.merge(meta_in, deployments, on="wmo_id", how="left") | |
| # Fill missing dates with date_update | |
| merged["date_update"] = pd.to_datetime(merged["date_update"], format="%Y%m%d%H%M%S", errors='coerce') | |
| merged["date_final"] = merged["date"].fillna(merged["date_update"]) | |
| print(f"Missing dates before fallback: {merged['date'].isna().sum()}") | |
| print(f"Missing dates after fallback: {merged['date_final'].isna().sum()}") | |
| merged["Year"] = merged["date_final"].dt.year | |
| merged["Month"] = merged["date_final"].dt.month | |
| print(f"Missing Year: {merged['Year'].isna().sum()}") | |
| print(f"Missing Month: {merged['Month'].isna().sum()}") | |
| pivot = merged.pivot_table(index="Month", columns="Year", values="wmo_id", aggfunc="count", fill_value=0) | |
| print(pivot.sum().sum()) | |