У меня есть CSV-файл, который имеет много столбцов. Я хочу определить столбцы широты, долготы и времени как измерения, а другие столбцы - как переменные в наборе данных Xarray. Между каждой точкой (каждая пара Лат и Лон) до другой существует расстояние 10 км. В приведенном ниже коде я не могу определить размер пикселя в кадре данных. Возможно ли это сделать?
пример файла : https://www.dropbox.com/s/5lwzrkiqn2rxxrp/file_2018-01-01_01.csv?dl=0
Код
import os
import pandas as pd
import glob
import xarray
path = r'/path/file' # use your path
all_files = glob.glob(os.path.join(path, "*.csv"))
colnames = ['time','Lat','Lon','Alt','Temperature', 'Relative Humidity', 'Wind speed', 'Wind direction', 'Short-wave irradiation']
for filename in all_files:
namecsv = os.path.splitext(os.path.basename(filename))[0]
df = pd.read_csv(filename, header=0, error_bad_lines=False, names = colnames, sep=',')
df["time"]= pd.to_datetime(df["time"])
xr = df.set_index(['Lat', 'Lon', 'time']).to_xarray()
# add variable attribute metadata
#xr['time'].attrs={'units':'hours since 2018-01-01'}
xr['Lat'].attrs={'units':'degrees', 'long_name':'Latitude'}
xr['Lon'].attrs={'units':'degrees', 'long_name':'Longitude'}
xr['Alt'].attrs={'units':'m', 'long_name':'depth'}
xr['Temperature'].attrs={'units':'k', 'long_name':'Air Temperature'}
xr['Relative Humidity'].attrs={'units':'%', 'long_name':'Air Relative Humidity'}
xr['Wind speed'].attrs={'units':'m/s', 'long_name':'Wind speed'}
xr['Wind direction'].attrs={'units':'deg', 'long_name':'Wind direction'}
xr['Short-wave irradiation'].attrs={'units':'Wh/m2', 'long_name':'Short-wave irradiation'}
# Save NetCDF file
xr.to_netcdf('/path/to/save/' + namecsv + '.nc')
del namecsv, df, xr
Участок
import xarray as xr
da = xr.open_dataset('/home/file_2018-01-01_01.csv.nc').load()
da.Temperature[0].plot(yincrease=False)
Результат
Что я хочу: