Conversation
backend/promis/export.py
Outdated
|
|
||
| from netCDF4 import Dataset | ||
|
|
||
| dataset = Dataset("temp.nc", 'w', format='NETCDF4') |
There was a problem hiding this comment.
Я не впевнена щодо того, чи треба тут створювати файл з унікальним ім'ям чи ні. Поки що це один файл. І я його не видаляю по закінченню роботи. Все одно перезапишеться наступного разу.
There was a problem hiding this comment.
Проблема тут в тому, що на релізній версії буде gunicorn і він запускатиме процеси паралельно. Коли у тебе два потоки будуть користувати той сами файл, буде не альо. Раджу зробити через отак щоб файл був гарантовано унікальний, якщо уже не можна уникнути файла. А без файла там ніяк?
There was a problem hiding this comment.
Без файла не получилося :( Я пробувала через StringIO зробити, але потім почитала, що здається такий фокус не прокатує з Dataset
There was a problem hiding this comment.
Я пропоную тоді так: зробити зараз з файлом і зробити міні-ішью ще на «зробити без файла» з тегом improvement, на колись потім.
backend/promis/export.py
Outdated
| altitudeVar.units = 'km' | ||
| dataVar.units = 'Date (YYYYDDD), "UT (ms), Longitude (deg), Latitude (deg), Altitude (km)' | ||
|
|
||
| dateVar[:] = dates |
There was a problem hiding this comment.
Дивний синтаксис, це для примусового копіювання?
backend/promis/export.py
Outdated
|
|
||
| from netCDF4 import Dataset | ||
|
|
||
| dataset = Dataset("temp.nc", 'w', format='NETCDF4') |
There was a problem hiding this comment.
Проблема тут в тому, що на релізній версії буде gunicorn і він запускатиме процеси паралельно. Коли у тебе два потоки будуть користувати той сами файл, буде не альо. Раджу зробити через отак щоб файл був гарантовано унікальний, якщо уже не можна уникнути файла. А без файла там ніяк?
backend/promis/export.py
Outdated
| latitudeVar.units = 'deg' | ||
| longtitudeVar.units = 'deg' | ||
| altitudeVar.units = 'km' | ||
| dataVar.units = 'Date (YYYYDDD), "UT (ms), Longitude (deg), Latitude (deg), Altitude (km)' |
There was a problem hiding this comment.
Мене насправді непокоїть ще оцей рядок. Я прочитала десь, але тепер не можу знайти де, що ніби для compoundType не можна задавати атрибути, в тому числі units для складових цього великого основного типу. Тому я зробила так. Але не впевнена в своїй правоті
There was a problem hiding this comment.
Це в NetCDF власне? Зараз сходу не можу сказати, попробую зібрати і перевірити.
backend/promis/export.py
Outdated
| data = dataset.createDimension('Data', numElems) | ||
|
|
||
| import numpy as np | ||
| dateVar= dataset.createVariable('Date', np.float32, ('Date')) |
There was a problem hiding this comment.
Не зовсім впевнена щодо типу даних Дата. Тут я поставила float32 зразу, і забула виправити перед комітом. Мабуть логічніше було int32. Алн можливо це має бути щось зовсім інше? String чи взагалі якийсь тип Дата чи Час. Далі в compoundType (рядок 152) я ці дані записую як стрінг. Але мабуть треба зробити тип однаковим тут і там. питання тільки в тому - яким він має бути. В netcdf4 бібліотеці є якісь інструменти для конвертування дати та часу в гарне представлення, але я ними не користувалася, бо не знала, чи потрібно це
There was a problem hiding this comment.
Можна пушати в ту саму гілку і коміт додастся :)
- changed hardcoded filename to automatic generation of the temp files with random names
…illiseconds - for 1kHz, and microseconds for more
elpiankova
left a comment
There was a problem hiding this comment.
Unique name of temporary netcdf file and add suport for multicomponent data like for Variant
Implementation of the NetCDF export issue #71