首页 > 编程语言 >拓端tecdat|python编程代写对NOAA天气数据格式转换

拓端tecdat|python编程代写对NOAA天气数据格式转换

时间:2022-11-14 22:31:27浏览次数:42  
标签:ftp ... python tecdat station download 数据格式 data ID

转换NOAA天气数据文件“ .fly”为Pandas DataFrame

 获取数据 ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily

In [1]:

import  matplotlib.pyplot  as  plt 
import pandas as pd
import numpy as np
import re
import ftplib

% matplotlib notebook

In [2]:

# download data from FTP

def download_file_from_ftp ( FTP_SERVER , FTP_PATH , FILENAME ):
with ftplib . FTP ( FTP_SERVER ) as ftp :
ftp . login ()
ftp . cwd ( FTP_PATH )
with open ( FILENAME , 'wb' ) as f :
ftp . retrbinary ( 'RETR ' + FILENAME , f . write )

查询站ID

In [3]:

def  get_station_ID ( station_to_find ,  filename ): 
for line in open ( filename ):
if station_to_find in line :
line_with_station = line
station_ID = re . split ( " " , line_with_station )[ 0 ]
return station_ID
return None
# warning, it is slow, download it only once
download_file_from_ftp ( "ftp.ncdc.noaa.gov" , "/pub/data/ghcn/daily" , "ghcnd-stations.txt" )

station_to_find = "GUANGZHOU" # USE CAPS
station_ID = get_station_ID ( station_to_find , "ghcnd-stations.txt" )

下载天气数据

In [4]:

weather_data_filename = station_ID + '.dly'

# warning, it is slow, download it only once
download_file_from_ftp ( "ftp.ncdc.noaa.gov" , "/pub/data/ghcn/daily/all" , weather_data_filename )

将.fly转换为pandas Dataframe

In [7]:

df = convert_dly_to_dataframe ( weather_data_filename ) 
df . head ()

Out[7]:

 

YEAR

MONTH

ELEMENT

VALUE1

VALUE2

VALUE3

VALUE4

VALUE5

VALUE6

VALUE7

...

VALUE22

VALUE23

VALUE24

VALUE25

VALUE26

VALUE27

VALUE28

VALUE29

VALUE30

VALUE31

0

1945

11

TAVG

NaN

NaN

NaN

NaN

NaN

NaN

NaN

...

NaN

NaN

NaN

NaN

NaN

NaN

NaN

NaN

107.0

NaN

1

1945

12

TAVG

123.0

136.0

152.0

144.0

146.0

189.0

219.0

...

179.0

146.0

128.0

107.0

104.0

112.0

122.0

127.0

129.0

156.0

2

1946

1

TAVG

150.0

150.0

123.0

117.0

112.0

121.0

125.0

...

146.0

153.0

173.0

196.0

211.0

212.0

218.0

201.0

156.0

131.0

3

1946

2

TAVG

114.0

112.0

147.0

181.0

195.0

192.0

149.0

...

201.0

196.0

231.0

226.0

221.0

229.0

240.0

NaN

NaN

NaN

4

1946

3

TAVG

237.0

162.0

142.0

133.0

183.0

187.0

160.0

...

183.0

192.0

205.0

216.0

223.0

238.0

207.0

195.0

233.0

228.0

 

 


标签:ftp,...,python,tecdat,station,download,数据格式,data,ID
From: https://blog.51cto.com/u_14293657/5851095

相关文章

  • 拓端tecdat|R语言编程代写确定聚类的最佳簇数:3种聚类优化方法
     确定数据集中最佳的簇数是分区聚类(例如k均值聚类)中的一个基本问题,它要求用户指定要生成的簇数k。 一个简单且流行的解决方案包括检查使用分层聚类生成的树状图,以查看其......
  • 【python 时间】python处理时间
    当前时间#coding=utf-8importtimeimportdatetimelocaltime=time.localtime(time.time())print(localtime)#格式化时间now=datetime.datetime.now()print......
  • Python函数
    1.函数的定义1.函数代码用关键字def声明,后接函数标志性名称(参数)2.函数参数放置()中,可以有零个或多个3.return表达式结束函数4.匿名函数:lambda......
  • python传值以及深浅拷贝
    Python深拷贝和浅拷贝浅拷贝:指的是重新分配一块内存,创建一个新的对象,里面的元素是原对象里的各个子对象的引用。原来变量的内存不一样。深拷贝:指的是重新分配一块内......
  • python学习第六周总结
    封装封装:就是将数据和功能'封装'起来隐藏:在类的定义阶段名字前面使用两个下划线表示隐藏。就是将数据和功能隐藏起来不让用户直接调用,而是开发一些接口间接调用,从而可......
  • PYTHON_排序
    准备分模块积累,此模块为【递推】。编写程序,输入一个包含20个整数的列表,对其中偶数下标的元素进行降序排列,奇数下标的元素不变。输出排序后的列表。(提示:使用切片。)输入样......
  • python-装饰器
    装饰器:装饰器可以用来做什么?作用:可以在不修改功能函数内部代码的情况下,给功能函数进行扩展的新功能(对开放封闭原理)1.装饰器可以给当前的功能进行扩展......
  • 拓端数据tecdat|R语言基于温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视
     为了说明层次聚类技术和k-均值,我使用了了城市温度数据集,其中包括几个城市的月平均气温。我们有15个城市,每月进行一次观测boxplot(temp[,1:12],main="月平均温度") 由于方......
  • 力扣278(java&python)-第一个错误的版本(简单)
    题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本......
  • python 多进程 多线程 协程
    多进程-进程池1fromconcurrent.futuresimportProcessPoolExecutor23withProcessPoolExecutor(max_workers=10)asexecutor:4results=executor.map......