Python提取NetCDF变量为CSV或文本文件

2024-05-29 03:12:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和stackoverflow还比较陌生。我第一次需要帮助和处理netCDF文件。当天早些时候,我使用arcmaps制作了一个.txt文件,然后使用Notepad++“Begin/End Select”在文本文件中指定日期范围,然后在“海洋数据视图”中绘制了之前的数据

我想学习如何通过python完成这一切。我学习了python的基础知识,并且知道非常少的科学编码

https://imgur.com/avWaCW4enter image description here

以上是什么样的文本文件应该像除了我不需要长和纬度

以下是我想要的标题: 日期时间压力[Dbar]温度[deg c]盐度[PSU] 密度[Kg m^-3]

我很难把所有的东西都组装起来

1)我想把它转换成日期时间

  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)我想特别提取2014年9月12日至2014年10月12日之间的特定数据范围

3)生成outfile.txt或csv或任何分隔符

稍后我要分析整个文件。该文件有40k个条目,因为它以秒为单位。下面是步骤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)

然后用出水口运行压力、温度、盐度、密度进行统计分析,找出基本stdv的最小值和最大值


Tags: 文件csv数据importdatetimestringtime时间

热门问题