WedX - журнал о программировании и компьютерных науках

(с учетом часового пояса) datetime в netcdf с использованием python

Я пытаюсь сохранить временную серию в файле netcdf. Согласно найденной мной документации, это можно сделать с помощью метода date2num из модуля netCDF4. Однако я не могу заставить его работать (см. пример ниже):

from datetime import datetime as dt
from netCDF4 import Dataset
from netCDF4 import num2date, date2num
import pytz

filename = 'test.nc'
root = Dataset(filename, 'w', format='NETCDF4_CLASSIC')
root.name = 'test'

# create dimension
root.createDimension('datetime', None)

# create variable
timeserie = root.createVariable('timeserie', 'f4', ('datetime',))
timeserie.units = 'days since 1970-01-01 00:00:00 UTC' # reference: epoch
timeserie.calendar = 'gregorian'

# create testList
listDT = [dt.now(pytz.utc), dt(1970, 1, 2, 12, 0, 0, 0, pytz.utc)]
print date2num(listDT, units=timeserie.units, calendar=timeserie.calendar)

root.close()

Ошибка, которую он мне дает:

Traceback (most recent call last):
  File "test.py", line 20, in <module>
    print date2num(listDT, units=timeserie.units, calendar=timeserie.calendar)
  File "netCDF4\_netCDF4.pyx", line 5128, in netCDF4._netCDF4.date2num (netCDF4\_netCDF4.c:60367)
TypeError: can't subtract offset-naive and offset-aware datetimes

Как мне сохранить данные даты и времени (желательно с учетом часового пояса) в netcdf с помощью python?

30.09.2016

  • Вы получили ответ на свой вопрос? 13.10.2016

Ответы:


1

В документе date2num() указано, что объект datetime должен быть в формате UTC. Число не может быть осведомлено о часовом поясе, если это не UTC. Вызовет большие проблемы с переходами стандартного/летнего времени.

Пытаться

listDT = [dt.now(), dt(1970, 1, 2, 12, 0, 0, 0)]
print date2num(listDT, units=timeserie.units, calendar=timeserie.calendar)

Чтобы продемонстрировать, что он поддерживает часовой пояс, попробуйте в качестве единиц измерения восточное смещение.

print date2num(listDT, units='days since 1970-01-01 00:00:00-04:00', calendar=timeserie.calendar)
30.09.2016
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]