Spaces:
Sleeping
Sleeping
File size: 2,868 Bytes
a3b21d2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | """
generate_sample_data.py β One-time script to create demo NetCDF files.
Run this before starting the API:
python scripts/generate_sample_data.py
Generates:
backend/data/sample/maharashtra_rain.nc
backend/data/sample/maharashtra_temp.nc
backend/data/sample/maharashtra_lst.nc
"""
import sys
import logging
from pathlib import Path
# Add backend to path
sys.path.insert(0, str(Path(__file__).parent.parent))
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s %(levelname)s: %(message)s",
datefmt="%H:%M:%S",
)
logger = logging.getLogger(__name__)
def main():
logger.info("π§οΈ Generating Maharashtra climate sample data...")
try:
from backend.pipeline.ingest_imd import ingest_rainfall, ingest_temperature
from backend.pipeline.ingest_mosdac import ingest_lst
# ββ Rainfall: 2015β2023 βββββββββββββββββββββββββββββββββββββββ
logger.info("\n[1/3] Rainfall dataset (2015β2023)...")
ds_rain = ingest_rainfall(start_year=2015, end_year=2023)
print(f" β
Rain: {ds_rain.dims} | vars={list(ds_rain.data_vars)}")
# ββ Temperature: 2015β2023 ββββββββββββββββββββββββββββββββββββ
logger.info("\n[2/3] Temperature dataset (2015β2023)...")
ds_temp = ingest_temperature(start_year=2015, end_year=2023)
print(f" β
Temp: {ds_temp.dims} | vars={list(ds_temp.data_vars)}")
# ββ LST: MOSDAC (2020β2023) βββββββββββββββββββββββββββββββββββ
logger.info("\n[3/3] Land Surface Temperature (MOSDAC/INSAT)...")
ds_lst = ingest_lst()
print(f" β
LST: {ds_lst.dims} | vars={list(ds_lst.data_vars)}")
# ββ Validation ββββββββββββββββββββββββββββββββββββββββββββββββ
logger.info("\nπ Validating generated files...")
import xarray as xr
sample_dir = Path(__file__).parent.parent / "backend" / "data" / "sample"
for nc_file in sample_dir.glob("*.nc"):
ds = xr.open_dataset(nc_file)
nan_count = sum(int(ds[v].isnull().sum()) for v in ds.data_vars)
print(f" π {nc_file.name}: {ds.dims} | NaN count: {nan_count}")
ds.close()
logger.info("\nπ All sample data generated successfully!")
logger.info(f" Location: {sample_dir}")
except ImportError as e:
logger.error(f"Missing dependency: {e}")
logger.error("Install with: pip install xarray netCDF4 numpy scipy")
sys.exit(1)
if __name__ == "__main__":
main()
|