Консультация № 187460
15.06.2013, 15:44
0.00 руб.
0 0 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Здравствуйте. Я пытаюсь написать небольшой скрипт на языке Python, который будет обрезать данные NetCDF по времени, широте и долготе. Для этого я использую библиотеки netcdf4, numpy, scipy. Принцип работы скрипта:
1. считать переменные и измерения с оригинального файла, установить отрезки для данных по координатам(грубо говоря по индексам элементов считанных данных).
2. Создать новый файл. Создать нужные нам измерения и переменные. Сначала создаем только время широту и долготу.
3. Потом выбираем нужную нам переменную в оригинальном файле. создаем такую же в нашем файле и записываем в неё нужные нам данные из переменной в оригинальном файле.
Я остановился на записи данных в нашу переменную (наверное даже раньше). В коде показано что я создал такую же переменную как и в оригинальном файле, но урезанную. Однако тип данных в оригинале - numpy.float32, в моем случае тип данных в переменной - это вообще класс-константа. Создавал переменную в точности по документации Netcdf4.

Как мне правильно создать переменную?

Приложение:
**#print f.variables['spei']**
<type 'netCDF4.Variable'>
float32 spei(time, lat, lon)
units: standardized values
_FillValue: -1e+20
long_name: standardized precipitation-evapotranspiration index
unlimited dimensions: time
current shape = (760, 360, 720)

**#print f2.variables['spei']**
<type 'netCDF4.Variable'>
float32 spei(time, lat, lon)
_FillValue: -1e+20
units: standardized values
long_name: standardized precipitation-evapotranspiration index
unlimited dimensions:
current shape = (40, 1, 1)

**#print type(f.variables['spei'][13][294][564])**
<type 'numpy.float32'>
**#print type(f2.variables['spei'][13][0][0])**
<class 'numpy.ma.core.MaskedConstant'>

Обсуждение

Форма ответа