индексирование широты и долготы в 2d массиве

У меня есть файл .nc, в котором широта и долгота находятся в 2-м массиве. Я хочу извлечь значения для определенных известных точек. Я не нашел способа найти индекс для этих известных точек.

структура данных выглядит так:

OrderedDict([(u'lon', <type 'netCDF4._netCDF4.Variable'>
              float32 lon(y, x)
                  standard_name: longitude
                  long_name: longitude
                  units: degrees_east
                  _CoordinateAxisType: Lon
              unlimited dimensions: 
              current shape = (146, 209)
              filling off), (u'lat', <type 'netCDF4._netCDF4.Variable'>
              float32 lat(y, x)
                  standard_name: latitude
                  long_name: latitude
                  units: degrees_north
                  _CoordinateAxisType: Lat
              unlimited dimensions: 
              current shape = (146, 209)
              filling off), (u'time', <type 'netCDF4._netCDF4.Variable'>
              float64 time(time)
                  standard_name: time
                  units: seconds since 1949-12-1 00:00:00
                  calendar: proleptic_gregorian
                  axis: T
              unlimited dimensions: time
              current shape = (55152,)
              filling off), (u'TOT_PREC', <type 'netCDF4._netCDF4.Variable'>
              float32 TOT_PREC(time, y, x)
                  standard_name: precipitation_amount
                  long_name: total precipitation amount
                  units: kg m-2
                  coordinates: lat lon
                  cell_methods: time: sum
              unlimited dimensions: time
              current shape = (55152, 146, 209)
              filling off)])

Предположим, если я хочу извлечь значения для точек с координатами: lat=27.25, lon=85.75, то как получить индекс широты и долготы для этих координат.

любая помощь или предложение будут высоко оценены!


person bikuser    schedule 16.08.2018    source источник


Ответы (1)


Сначала вы читаете файл .nc и переменные внутри

ds1 = NetCDFFile('file.nc')
ds2 = ...

lon = ds.variables['lon'][:]
lat = ds.variables['lat'][:]

Затем напишите файл, используя цикл for {} {} {} lat, lon, data, после чего вы легко прочитаете данные. надеюсь, в этом есть смысл.

person SAMPHY86    schedule 23.08.2018