I have MODIS raster images, want to extract LST values at given lat long values USING python

23 Views Asked by At

This is my code facing problem from #CALCULATE LST

import pandas as pd
import os
import glob
import rasterio
import numpy as np
required_columns = station_data2[["LON", "LAT", "YYYYMMDD", "heat.index_rH", "heat.index_DP"]]
#create list of our raster images dates
dates_to_select = ["2012-01-05", "2012-02-05", "2012-03-05", "2012-04-05", "2012-05-05", "2012-06-05","2012-07-05", "2012-08-05", "2012-09-05", "2012-10-05", "2012-11-05", "2012-12-05"]
dates_to_select_series = pd.Series(dates_to_select)
station_datewise = required_columns[required_columns['YYYYMMDD'].isin(dates_to_select_series)]
# working on Lst raster data-----------------------------------------------------------
# List raster data

raster_dir = 'D:/HEATWAVE/DATA/APSCO_OUTPUT_REGRESSION'
raster_files = glob.glob(os.path.join(raster_dir, '*.tif'))
# #load unique lat lon columns seperately--------------------------------------------------
stations=pd.read_csv("D:/HEATWAVE/DATA/NASAPOER DATA/lat_long_checking.csv")



#CALCULATE LST-----------problomatic part--------------------------------------------------------- **



import rasterio
from rasterio.features import sample

# Read raster data
lst_values = []
for raster_file in raster_files:
    with rasterio.open(raster_file) as src:
        raster_data = src.read(1)
        raster_transform = src.transform
        raster_crs = src.crs
        raster_bounds = src.bounds

        # Extract raster values for each station
        station_rasters = []
        for i, row in station_datewise.iterrows():
            station_lon, station_lat = map(float, row['lat_lon'].split(','))
            station_point = (station_lon, station_lat)
            raster_value = next(sample([station_point], transform=raster_transform, counts=1))[0][0]
            station_rasters.append(raster_value)

        lst_values.append(station_rasters)

# Add LST values to station data
station_datewise['lst'] = lst_values
print(lst_values.head())

want to extract LST values from MODIS raster images at given lat lon values, facing error

ImportError: cannot import name 'sample' from 'rasterio.features'

what to do

0

There are 0 best solutions below