Я немного поработал с файлом netcdf, содержащим значения концентрации загрязнителей в сетке. Каждая ячейка сетки определяется комбинацией чисел с плавающей запятой, соответствующей числу ячеек с запада (= долг) и числа ячеек с юга (= широта).
У меня есть кодэто позволяет извлекать все значения концентрации через домен на определенном временном шаге. Казалось, что он работает очень хорошо, но недавно я заметил, что извлеченные значения при заданном lon / lat не соответствуют тому, что будет, например, напрямую предоставлено ncdump.
Я заметил, что у меня не былоэта проблема, когда не выполняется цикл, но напрямую дается требуемый lon / lat. Но как только я добавляю цикл for, что-то идет не так.
Вот пример на случай, если мне неясно. Рассмотрим следующее lon / lat = 62 (62-я ячейка слева);86 (86-я ячейка снизу).
#First step: Getting lon and lat from nc file.
lons = fh.variables['lon'][:,:]
lats = fh.variables['lat'][:,:]
# As for the example I considered the timestep 42 and only the very first level (0) interests me.
test_1 = var[42, 0, 86, 62] #Output_1 = 62.99181
for i in np.arange(42, 43, 1):
conc = np.asarray(var[i,0,:,:]).reshape(20511) #20511 corresponds to the number of grid's cells I am working with.
# Merging of 'conc' with a 'df' dataframe that contains lon and lat columns values called nx and ny.
test_2 = df.loc[(df.nx == x) & (df.ny == y)] # Output_2 = 63.267498
Output_1 соответствует тому, что было получено через ncdump, а Output_2 дает другой результат.
Также print (fh) дает следующее:
root group (NETCDF3_CLASSIC data model, file format NETCDF3):
CDI: Climate Data Interface version 1.9.5 (http://mpimet.mpg.de/cdi)
Conventions: None
history: # Erased for clearer reading.
Title: CHIMERE SUITE
Sub-title: Hourly output concentrations file
Chimere_type: out
Generating_process: Generated by chimere
Domain: domain
Chimere_version: V_2013
NCO: "4.6.0"
CDO: Climate Data Operators version 1.9.5 (http://mpimet.mpg.de/cdo)
nco_openmp_thread_number: 1
dimensions(sizes): time(8736), bottom_top(1), south_north(129), west_east(159)
variables(dimensions): >f8 time(time), >f4 NO2(time,bottom_top,south_north,west_east), >f4 O3(time,bottom_top,south_north,west_east), >f4 lat(south_north,west_east), >f4 lon(south_north,west_east)
groups:
Любая помощь будет принята с благодарностью.