varunayan.imd module

IMD gridded climate data (rainfall 0.25/1.0 deg, temperature 1.0 deg).

varunayan.imd.get_imd_grid_specs(dataset: str) dict[source]

Return grid specifications for dataset (a key in IMD_GRID_SPECS).

varunayan.imd.list_imd_datasets() DataFrame[source]

Return a DataFrame of all IMD gridded datasets.

varunayan.imd.download_imd_rainfall(start_year: int, end_year: int, resolution: float = 0.25, output_dir: str | None = None, use_cache: bool = True) List[str][source]

Download IMD gridded rainfall for each year. Returns list of file paths.

varunayan.imd.download_imd_temperature(start_year: int, end_year: int, var_type: str = 'tmax', output_dir: str | None = None, use_cache: bool = True) List[str][source]

Download IMD gridded temperature for each year. Returns list of file paths.

varunayan.imd.read_imd_temperature(file_path: str, var_type: str, year: int) DataFrame[source]

Read an IMD binary .grd temperature file (32-bit LE floats, nlon x nlat x ndays).

varunayan.imd.read_imd_rainfall(file_path: str, resolution: float, year: int) DataFrame[source]

Read an IMD NetCDF rainfall file.

varunayan.imd.process_imd_files(file_paths: List[str], var_type: str, resolution: float | None = None, years: List[int] | None = None) DataFrame[source]

Read and concatenate multiple IMD files.

varunayan.imd.filter_imd_by_bbox(data: DataFrame, north: float, south: float, east: float, west: float) DataFrame[source]

Filter IMD data to a lat/lon bounding box.

varunayan.imd.filter_imd_by_geojson(data: DataFrame, geojson_file: str) DataFrame[source]

Filter IMD data to points within a GeoJSON polygon.

varunayan.imd.aggregate_imd_by_frequency(data: DataFrame, frequency: str = 'daily') DataFrame[source]

Aggregate IMD data: SUM for rainfall, MEAN for temperature.

varunayan.imd.imd_rainfall_bbox(request_id: str, start_year: int, end_year: int, north: float, south: float, east: float, west: float, resolution: float = 0.25, frequency: str = 'daily', use_cache: bool = True) DataFrame[source]

Download, bbox-filter, aggregate IMD rainfall.

varunayan.imd.imd_rainfall_geojson(request_id: str, start_year: int, end_year: int, geojson_file: str, resolution: float = 0.25, frequency: str = 'daily', use_cache: bool = True) DataFrame[source]

Download, geojson-filter, aggregate IMD rainfall.

varunayan.imd.imd_temperature_bbox(request_id: str, start_year: int, end_year: int, north: float, south: float, east: float, west: float, var_type: str = 'tmax', frequency: str = 'daily', use_cache: bool = True) DataFrame[source]

Download, bbox-filter, aggregate IMD temperature.

varunayan.imd.imd_temperature_geojson(request_id: str, start_year: int, end_year: int, geojson_file: str, var_type: str = 'tmax', frequency: str = 'daily', use_cache: bool = True) DataFrame[source]

Download, geojson-filter, aggregate IMD temperature.