Как преобразовать CSV-файл в сетку с Xarray? - PullRequest
0 голосов
/ 23 мая 2019

У меня есть 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)

Результат

enter image description here

Что я хочу:

enter image description here

...