Python Извлечение переменных NetCDF в CSV или текстовый файл - PullRequest
0 голосов
/ 24 октября 2019

Я довольно новичок в python и stackoverflow. Мне нужна помощь и работа с файлами netCDF в первый раз. Ранее в тот же день я использовал arcmaps для создания файла .txt, затем использовал Notepad ++ «Выбор начала / конца», чтобы указать диапазон дат в текстовом файле, а затем отобразил данные ранее в виде данных океана.

Я хотел бы узнать, как сделать все это через Python. Я изучил основы Python и знаю очень минимальное научное кодирование.

https://imgur.com/avWaCW4 enter image description here

выше, как текстовый файл должен выглядеть, кромеМне не нужны длинные и лат

Вот заголовки, которые я хочу: Дата Время Давление [Дбар] Температура [град. С] Соленость [PSU] Плотность [кгм ^ -3]

IЯ испытываю трудности с сортировкой всего вместе

1) Я хочу преобразовать его в Date Time

  string ctd_time:comment = "Time in seconds since 2000-01-01.";
  ctd_time:precision = 0;
  string ctd_time:coordinates = "time lat lon pressure";
  string ctd_time:long_name = "Time, UTC";
  string ctd_time:units = "seconds since 2000-01-01";
  ctd_time:_ChunkSizes = 504U;

2) Я хочу специально извлечь определенный диапазон данных между 9/12 /2014 - 10/12/2014

3) создать файл outfile.txt или csv или любой другой разделитель.

Позже я хочу проанализировать весь файл. Файл имеет 40 тыс. Записей, потому что это в секундах. Ниже приведены шаги 4-6, которые я хочу сделать, но еще не изучил.

4) Я хочу преобразовать секунды в среднечасовые значения

5) Делать основную статистику с этими файлами

идеальный мир Я хотел бы выяснить кое-что, что перед усреднением каждого часа данных запускает статистический тест и исключает выбросы.

6) график зависимости давления от температуры и интерполяция между точками для получения плавного графика с одной из этих https://matplotlib.org/cmocean/ цветовых карт

Более или менее я хочу использовать это для лучшей разработки Pythonнавыки тоже. Я хочу учиться и эффективно работать с файлами NetCDF.

Спасибо!

import datetime as dt
import netCDF4
import pandas as pd
ooi = netCDF4.Dataset("filepath", 'r')
ooi.variables.keys()
time_var = ooi.variables['ingestion_timestamp'][:]
pressure = ooi.variables['ctdpf_ckl_seawater_pressure'][:]
temperature = ooi.variables['ctdpf_ckl_seawater_temperature'][:]
salinity = ooi.variables['practical_salinity'][:]
density = ooi.variables['density'][:]

Пыльник - это то, что я пытаюсь сделать. Укажите время и выведите файл

start = dt.datetime(2014,9,14,1,0,0)
stop = dt.datetime(2014,10,14,1,0,0)

istart = netCDF4.date2index(start,time_var,select='exact')
istop = netCDF4.date2index(stop,time_var,select='exact')

to_csv('20140912T000003_20141012T000003.csv',index=True, header=True)

Затем с выходным файлом запустите статистический анализ плотности солености давления и температуры и найдите базовые значения: стандартное значение минимальной максимальной скорости

...