#python #netcdf #python-xarray
Вопрос:
У меня есть два .nc
файла, которые имеют одинаковые размеры lat и lon, CRS и все остальное.
Dimensions: (lat: 62, lon: 94)
Coordinates:
* lat (lat) float64 58.46 58.79 59.12 59.44 ... 77.45 77.78 78.11 78.44
* lon (lon) float64 -150.0 -149.4 -148.9 -148.3 ... -98.56 -98.0 -97.43
Когда я затем добавляю эти два файла вместе, все измерение меняется:
dem = xr.open_dataset(path 'DEM.nc')
dc = xr.open_dataset(path 'DC.nc')
X = 1 / (1 np.exp(-(-2.2432e 01 (dem.Band1 * 1.97521e-06) (dc.Band1 * 5.97414e-04))))
print(X)
<xarray.DataArray 'Band1' (lat: 11, lon: 94)>
* lat (lat) float64 65.01 65.34 65.67 65.99 ... 73.52 74.18 77.78 78.44
* lon (lon) float64 -150.0 -149.4 -148.9 -148.3 ... -98.56 -98.0 -97.43
Что происходит? Почему это добавление меняет все измерение?
nb. в dc
файле есть несколько ячеек сетки без данных nan
. Влияет ли это на это?
РЕДАКТИРОВАТЬ: С учетом данного ответа я все еще не думаю, что это происходит исключительно из-за отсутствия данных, посмотрите на изображение наборов данных по отдельности и наборов данных в совокупности:
Комментарии:
1. Можете ли вы предоставить форму обоих наборов данных? И, возможно, предоставить тестовые данные для устранения этой проблемы.
2. Загрузите на диск или что-то еще и предоставьте общедоступную ссылку.
Ответ №1:
Вы дали ответ самому себе с помощью
the dc file has some grid cells without data nan. Does that influence it?
Да, потому что xarray тоже смотрит на координаты, а не просто выполняет векторизованные операции. Ознакомьтесь с документацией, чтобы узнать об этом больше.
Обходной путь очень прост: позвольте numpy сделать эту работу за вас!
X = 1 / (1 np.exp(-(-2.2432e 01 (dem.Band1.values * 1.97521e-06) (dc.Band1.values * 5.97414e-04))))
data_array = xarray.DataArray(X, coords={'lat': dem.lat, 'lon': dem.lon}, dims=['lat', 'lon'])
dem['combined'] = data_array
Комментарии:
1. Привет @dl.метео. Я не думаю, что это действительно так. Я отредактировал свой вопрос, у вас есть время просмотреть его еще раз с изображением отдельных наборов данных и объединенных? Спасибо.
2. @Thomas ознакомьтесь с моим обновленным ответом. Я думаю, что это подходящее решение для вас. Пожалуйста, оцените мой ответ, если он соответствует вашим требованиям.
3. Я посмотрю на это прямо сейчас, спасибо!
4. Спасибо, кажется, это хорошо работает. Красиво — спасибо!