Проблемы с автоматическим извлечением значений из файла netcdf - python - PullRequest
0 голосов
/ 11 октября 2019

Я немного поработал с файлом 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: 

Любая помощь будет принята с благодарностью.

...