python读取nc文件并转换成csv_使用Python截取nc文件数据保存到CSV文件-Go语言中文社区...
问题要求:
编写一个函数完成以下任务:截取经度在23°N-40°N,纬度在118°E-131°E范围内各属性不同深度的数据,使用Python中合适的数据结构将截取的数据保存到同名CSV文件中。(nc文件数据格式参见笔者其他文章)
实验内容(附代码)
实验数据介绍(通过实验介绍你对NC数据的认识)
nc文件即NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”。 一个NetCDF文件的结构包括以下对象:变量(Variables),维(dimension),属性(Attribute) 。
本次查看的nc文件其中包括 (['salinity', 'time', 'depth', 'lat', 'lon', 'water_temp']) 一共5个变量。其中’salinity’和’water_temp’两个变量有四个维度,表示为
‘salinity(time, depth, lat, lon)’和’water_temp(time, depth, lat, lon)’。每个变量有自己的属性值,例如纬度’lat’,表示为
float64 lat(lat)
long_name: Latitude
standard_name: latitude
units: degrees_north
axis: Y
NAVO_code: 1
_CoordinateAxisType: Lat
实验步骤(记录实验过程,配图加以说明)
实验1:简单的安装netCDF4包,然后用这个包下的Dateset函数来读取文件信息。
实验2:
1.设一个函数,然后用Dateset函数读取nc文件
2.获取变量相应数组集合-纬度经度温度深度
3.文件路径
4.创建csv文件,设置异常处理
这里用嵌套循环将符合条件的值writerow到创建的csv文件中。
5.’__name__==__main__’模块
这个模块的作用是既能保证当前的.py文件能直接运行,也能保证其可以作为模块被其他.py文件导入。
实验结果
成功生成了对应的csv文件。其中共有34345行数据。
实验参考资料
参考博客:
如何在PyCharm中安装第三方库(包)?
http://www.360doc.com/content/18/0822/17/11881101_780384182.shtml
NC文件读写方式
https://blog.csdn.net/ennaymonkey/article/details/62886843
Python读取nc文件
https://blog.csdn.net/showpingzhang/article/details/83384780
Python读写csv文件的几种方法 及 pandas.read_csv参数全解
实验总结与体会
本次实验是我第一次使用python来处理数据集。通过本次实验,
加深了对nc文件的认识。
对python处理数据的方法有了一定了解。
对python用于数据处理计算的库例如netCDF4和numpy有了一定了解。
对于python的文件操作有了一定认识。import pandas
import netCDF4 as ne
import numpy as np
import csv
import glob
import sys
def to_csv(source_file):
#读取nc数据
dataset=ne.Dataset(source_file)
print(dataset.variables.keys())
#获取相应数组集合--纬度经度温度深度
lat_set = dataset.variables['lat'][:]
lon_set = dataset.variables['lon'][:]
temp_set=dataset.variables['water_temp'] [:]
dep_set=dataset.variables['depth'][:]
index = [] # 把满足条件的经纬度放入列表index之中
for j in range(len(lat_set)): # j为纬度
for k in range(len(lon_set)): # k为经度
if lat_set[j] > 23 and lat_set[j] < 40:
if lon_set[k] > 118 and lon_set[k] < 131:
index.append((j, k)) # 插入满足条件的数据
print('输出index列表:')
print(index)
print('-------------------------------------------------------------------')
#文件名不含扩展名
source_file=source_file.split('.')
file_name=source_file[0]
#创建csv目标文件
try:
#打开目标csv文件
with open(file_name+'.csv','a',newline='') as targetFile:
# 创建写入流
writer = csv.writer(targetFile)
# 写入表头
writer.writerow(('lat', 'lon', 'temperature', 'depth',
))
# 写入数据
for j in range(len(lat_set)): # j为纬度
for k in range(len(lon_set)): # k为经度
if lat_set[j] > 23 and lat_set[j] < 40:
if lon_set[k] > 118 and lon_set[k] < 131:
i=0
writer.writerow((lat_set[j], lon_set[k], temp_set[0][i][j][k], dep_set[i]))
targetFile.close()#关闭文件
print('Get'+file_name+'.csv Success!')
except Exception as e:#抛异常
print('Error :'+str(e))
if '__name__ ==__main__':
print("start transfrom!")
to_csv('20150101.nc')
print('Transform successfully')
python读取nc文件并转换成csv_使用Python截取nc文件数据保存到CSV文件-Go语言中文社区...相关推荐
- Python中用pandas将numpy中的数组数据保存到csv文件
Python中用pandas将numpy中的数组数据保存到csv文件 本博客转载自:[1]https://blog.csdn.net/grey_csdn/article/details/7018587 ...
- 老鱼Python数据分析——篇七:将爬取的数据保存到CSV文件
使用Python操作CSV文件非常方便,三行代码搞定. 一.向文件中追加数据 import csv# 将数据写入文件 with open("d:\\data.csv", " ...
- 爬取豆瓣音乐TOP250数据保存到csv文件和xls文件
爬取的目标网址:https://music.douban.com/top250 利用lxml库,获取前10页的信息,需要爬取的信息包括歌曲名.表演者.流派.发行时间.评分和评论人数,把这些信息存到cs ...
- Python读取xlsx表格并转换成Python列表
Python读取xlsx表格并转换成Python列表 参考链接https://www.cnblogs.com/ilovepython/p/11068841.html import xlrd from ...
- Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中
Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中 1.需要的Python模块 主要是requests模块,用于得到的网页的数据 安装命令为:pip install requests 2 ...
- python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和电影图片,分别保存到csv文件和文件夹中
python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和图片,分别保存到csv文件和文件夹中. 爬取的数据包括每个电影的电影名 , 导演 ,演员 ,评分,推荐语,年份,国家,类型. py如果 ...
- 使用Python对PDF文件进行词频统计分析并保存到CSV文件中
PDF转TXT文件要安装的库 pdfminer3k 分词处理要安装的库 jieba # -*- coding:utf-8 import sys import importlib importlib.r ...
- python爬取当当网的书籍信息并保存到csv文件
python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...
- 爬虫实战4:爬取猫眼电影排名Top100的详细数据保存到csv文件
申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 猫眼电影 完整代码 运行结果 猫眼电影 完整代码 import time import requests import re i ...
最新文章
- iOS访问系统日历 添加提醒事件
- 『Python Web框架之Django』第几节: AJAX
- Java LinkedList特有方法程序小解 使用LinkedList 模拟一个堆栈或者队列数据结构。...
- boost::math::barycentric_rational用法的测试程序
- JVM(4)之 使用MAT排查堆溢出
- BugkuCTF-MISC题split
- 流水线调度(51Nod-1205)
- hint oracle qbname_从才oracle中找到所有列名为BANK_ACC,且BANK_ACC=000的项,并将BANK_ACC=000000的项修改为BANK_ACC=111...
- php嗅探链接,教你如何利用php来嗅探劫持服务器数据
- c语言大神,C语言入门大神有话说(一)
- 计算机ping使用的端口,Win7系统中如何Ping端口?Ping端口命令的用法
- LoadRunner 11.50 下载+安装+补丁
- 在计算机上怎么找资源管理器,资源管理器怎么打开 教你如何快速打开资源管理器...
- 百度阅读赚钱秘法 人人皆可操作
- Linux IPTABLES 防火墙专题讲座 - 上篇-龙小威-专题视频课程
- html避免多次点击选中页面文字或者内容时出现蓝色背景
- JFFS2文件系统挂载过程(5)
- 重新整理秋招准备的思路-9.20
- 基于Activiti的流程应用开发平台JSAAS-WF V5.3
- 科大讯飞董事长刘庆峰:人工智能窗口期有多远?【软件网每日新闻播报│第10-19期】
热门文章
- 简单理解--java反射(面试必备)
- 网易云音乐java爬虫_一起来写网易云音乐Java爬虫
- [Excel.VBA常用代码实战大全].袁竹平.扫描版百度云
- Velocity语法介绍
- 西北工业大学c语言程序设计试题,西北工业大学15春《C语言程序设计》在线作业答案...
- AWS在中国推出教育技术创业加速计划AWS EdStart
- 测开转回开发经历感悟
- 列车调度系统属于计算机应用中的,2020年12月网络教育​统考《计算机应用基础》基础知识试题及答案1...
- 九、CentOS7安装HDF5
- 通过TMS320F28335学习DSP的开发流程——28335的基础知识(2)