请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 32913|回复: 30

[源代码] 分享一个自己写的python批量下载探空数据的程序

[复制链接]

新浪微博达人勋

发表于 2019-1-20 14:42:38 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 暮雪千山 于 2019-2-21 17:22 编辑

对爬虫啥的不太懂,写的比较笨,希望能对大家有帮助。
数据是从http://weather.uwyo.edu/upperair/seasia.html 获取,存储到本地的txt。原理其实挺简单的,网站的url格式是确定的,根据时间,站点等可以凑一个url,然后获取出相应的html内容。。

存储到txt里的文本如下:

-----------------------------------------------------------------------------
   PRES   HGHT   TEMP   DWPT   RELH   MIXR   DRCT   SKNT   THTA   THTE   THTV
    hPa     m      C      C      %    g/kg    deg   knot     K      K      K
-----------------------------------------------------------------------------
  873.0   1378    9.4   -4.6     37   3.13     80     16  293.7  303.2  294.3
  872.0   1387    9.8   -3.2     40   3.48     79     17  294.2  304.8  294.9
  863.0   1472    9.6   -4.2     38   3.27     70     27  294.9  304.9  295.5
  850.0   1595    9.4   -5.6     34   2.98     75     22  296.0  305.1  296.5
  838.0   1713    9.4   -7.6     29   2.59     50     15  297.2  305.2  297.6
  815.0   1940    8.1  -10.7     25   2.08      0      0  298.1  304.7  298.5
  745.0   2674    3.8  -20.8     15   0.98    125     10  301.2  304.5  301.4
  724.0   2907    2.4  -24.1     12   0.76    115     12  302.2  304.8  302.3
  718.0   2975    2.0  -25.0     11   0.70    126     12  302.5  304.9  302.6
  706.0   3111    3.0  -25.0     11   0.72    149     11  305.0  307.5  305.2
  700.0   3180    2.8  -22.2     14   0.93    160     11  305.6  308.7  305.7
  684.0   3363    1.4  -23.7     13   0.83    175      8  306.1  308.9  306.2
  619.0   4151   -4.5  -30.1     12   0.51    210     15  308.1  309.9  308.2
  601.0   4384   -6.3  -32.0     11   0.44    220     16  308.7  310.3  308.8
  586.0   4584   -7.8  -33.6     11   0.38    235     19  309.2  310.6  309.2
  573.0   4761   -9.1  -35.1     10   0.34    223     25  309.6  310.8  309.6
  565.0   4870   -8.3  -43.4      4   0.15    215     29  311.8  312.3  311.8
  559.0   4953   -7.7  -49.7      2   0.07    215     30  313.4  313.7  313.4
  500.0   5810  -12.9  -41.9      7   0.19    220     42  317.2  318.0  317.3
  459.0   6459  -18.3  -40.3     13   0.25    222     50  318.4  319.3  318.4
  400.0   7480  -24.3  -48.3      9   0.12    225     62  323.3  323.8  323.4
  347.0   8499  -30.5  -58.5      5   0.04    229     79  328.3  328.5  328.3
  335.0   8748  -30.9  -62.9      3   0.02    229     83  331.1  331.2  331.1
  328.0   8896  -31.9  -63.1      3   0.02    230     86  331.7  331.9  331.7
  300.0   9520  -36.1  -64.1      4   0.02    230     86  334.4  334.5  334.4
  280.0   9996  -39.5                         230     88  336.1         336.1
  268.0  10298  -41.7                         230     84  337.2         337.2
  250.0  10770  -44.1                         230     77  340.4         340.4
  200.0  12240  -50.3                         240     64  352.9         352.9
  176.0  13071  -53.0                         250     49  361.6         361.6
  172.0  13220  -53.5                         248     48  363.2         363.2
  159.0  13722  -57.5                         239     45  364.7         364.7
  153.0  13965  -58.7                         235     43  366.7         366.7
  150.0  14090  -59.3                         240     43  367.7         367.7
  139.0  14554  -61.7                         250     36  371.6         371.6
  126.0  15152  -64.8                         240     38  376.6         376.6
  112.0  15870  -68.5                         255     36  382.5         382.5
  100.0  16560  -72.1                         250     53  388.2         388.2
   91.0  17107  -74.5                         270     34  394.1         394.1
   85.0  17503  -76.2                         265     27  398.4         398.4
   82.0  17712  -77.0                         245     18  400.7         400.7
   80.5  17819  -77.5                         245     17  401.9         401.9
   75.0  18224  -77.2                         265     16  410.7         410.7
   74.0  18301  -77.1                         245     12  412.4         412.4
   73.0  18379  -77.1                         235     12  414.2         414.2
   71.0  18539  -77.0                         245     17  417.7         417.7
   70.0  18620  -76.9                         250     17  419.6         419.6
   68.7  18728  -77.3                         277     16  420.9         420.9
   67.1  18864  -74.1                         311     16  430.7         430.7
   66.0  18960  -74.6                         335     15  431.7         431.7
   62.3  19294  -76.3                          17      3  435.1         435.1
   62.0  19322  -76.1                          20      2  436.1         436.1
   61.0  19417  -75.5                          40      2  439.4         439.4
   57.0  19812  -73.0                         205     10  453.7         453.7
   55.0  20020  -71.7                                     461.4         461.4

                             Station number: 60680
                           Observation time: 070102/0000
                           Station latitude: 22.78
                          Station longitude: 5.51
                          Station elevation: 1378.0
                            Showalter index: 12.60
                               Lifted index: 12.73
    LIFT computed using virtual temperature: 12.62
                                SWEAT index: 86.01
                                    K index: -8.30
                         Cross totals index: 7.30
                      Vertical totals index: 22.30
                        Totals totals index: 29.60
      Convective Available Potential Energy: 0.00
             CAPE using virtual temperature: 0.00
                      Convective Inhibition: 0.00
             CINS using virtual temperature: 0.00
                     Bulk Richardson Number: 0.00
          Bulk Richardson Number using CAPV: 0.00
  Temp [K] of the Lifted Condensation Level: 263.73
Pres [hPa] of the Lifted Condensation Level: 666.06
     Mean mixed layer potential temperature: 296.21
              Mean mixed layer mixing ratio: 2.86
Precipitable water [mm] for entire sounding: 4.26


不需要后面部分描述数据的,可以把代码删掉一些就可以了。。

Download_sound.py

4.44 KB, 下载次数: 237, 下载积分: 金钱 -5

评分

参与人数 1金钱 +2 收起 理由
arya_youghurt + 2

查看全部评分

本帖被以下淘专辑推荐:

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-4-15 20:04:18 | 显示全部楼层
我的python版本时3.7.3,请问我只改了路径,为什么提示:
Traceback (most recent call last):
  File "D:\python\sounding.py", line 104, in <module>
    x=download_multi_year('africa',2007,2018,1,12,60680,my_folder)
  File "D:\python\sounding.py", line 89, in download_multi_year
    mycontent = content(getHtml(myurl))
  File "D:\python\sounding.py", line 16, in getHtml
    page = urllib.urlopen(url)
AttributeError: module 'urllib' has no attribute 'urlopen'

请问我该怎么解决呀?
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2019-6-19 16:20:06 | 显示全部楼层
zzw9701 发表于 2019-4-15 21:45
非常感谢你的回答,但是我又遇到了新的问题...不会python,python小白什么都不懂,就用来批量下数据的。 ...

错误原因在于:python3和Python2在套接字返回值解码上有区别。解决方法:content = html.partition(str.encode())[2],即可解决。

评分

参与人数 1金钱 +2 收起 理由
暮雪千山 + 2 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2019-2-27 16:53:44 | 显示全部楼层
辛苦楼主了,谢谢分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-2-28 15:48:05 | 显示全部楼层
本帖最后由 beesfly 于 2019-2-28 16:49 编辑

下载了,只对脚本最后两行修改了一些参数,如路径,区域,站号等,其他的分毫未动。在python2.6自带的IDLE中运行,没有报错。
但是下载的生成的文件都是空白。但是换成楼主的所用的台站60680,下载就有结果。奇了怪了。我再试试其他的台站=====================
后来通过点击特定区域的台站,检查了网址,对区域作了修改就行了。比如手动选择Southeast Asia在地址栏是seasia,那么区域就应该写成seasia
================  再次感谢楼主的辛勤劳动!!!========================



密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-4-15 20:42:49 | 显示全部楼层
zzw9701 发表于 2019-4-15 20:04
我的python版本时3.7.3,请问我只改了路径,为什么提示:
Traceback (most recent call last):
  File "D ...

我是用python2.7写的,你用urllib.request代替urllib.urlopen再试试
具体见:
https://blog.csdn.net/john_bian/article/details/68059250
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-15 21:45:10 | 显示全部楼层
暮雪千山 发表于 2019-4-15 20:42
我是用python2.7写的,你用urllib.request代替urllib.urlopen再试试
具体见:
https://blog.csdn.net/j ...

非常感谢你的回答,但是我又遇到了新的问题...不会python,python小白什么都不懂,就用来批量下数据的。。。我的版本是3.7.2。我照楼主的方法改了之后,又出现了新的问题:
Traceback (most recent call last):
  File "D:\python\sounding.py", line 104, in <module>
    x=download_multi_year('africa',2007,2018,1,12,60680,my_folder)
  File "D:\python\sounding.py", line 89, in download_multi_year
    mycontent = content(getHtml(myurl))
  File "D:\python\sounding.py", line 23, in content
    content = html.partition(str)[2]
TypeError: a bytes-like object is required, not 'str'

请问这要怎么解决呢?
以下时我的改的路径和时间:
my_folder='D://sounding//'
x=download_multi_year('africa',2007,2018,1,12,60680,my_folder)
谢谢楼主!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-6 09:00:16 | 显示全部楼层
beesfly 发表于 2019-2-28 15:48
下载了,只对脚本最后两行修改了一些参数,如路径,区域,站号等,其他的分毫未动。在python2.6自带的IDLE ...

我也遇到了这个问题,文件是空白的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-6 11:11:57 | 显示全部楼层
zwykobe 发表于 2019-5-6 09:00
我也遇到了这个问题,文件是空白的

楼主的代码应该是没问题的,你自己再认真查看下程序需要替换的部分
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-20 08:38:33 | 显示全部楼层
请问有什么办法可以把批量下载的TXT里后面的描述文件删除吗?matlab读取的时候很麻烦。。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-30 15:56:40 | 显示全部楼层
太牛了{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表