爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 149000|回复: 94

[源代码] python气象自动绘图函数设计思想与使用方法

  [复制链接]

新浪微博达人勋

发表于 2020-11-18 17:54:08 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 qq492947833 于 2024-3-17 22:39 编辑

最近一次更新(2024-03-17):
1.更新了一个新的函数,Auto_CNN_pytorch,使用Pytorch库包进行卷积神经网络构建。


                               
登录/注册后可看大图


Tensorflow-gpu从2.10版本之后就不再支持windows系统了,除非使用虚拟机安装linux系统,才可以部署2.10版本以上的Tensorflow-gpu。这对于多数Windows用户很不友好,尤其是今后所有keras更新的layers使用tensorflow-gpu均不能调用,故决定从本次更新开始,逐步将之前的深度学习tensorflow代码向pytorch转移(Pytorch目前是二合一,即cpu和gpu版本均使用一个库包)。这个工作量不小,大概率需要半年至一年时间更新完成。不过tensorflow转pytorch原理比较简单,目前发现主要有以下几点需要注意:
①Pytorch不能够像tensorflow那样直接调用Metrics,需要借助torchmetrics库包。
②Pytorch不能够像tensorflow那样使用Model(inputs=,outputs=)构建网络,而是需要使用def class(torch.nn.Module)构建。
③Pytorch的所有变量、模型、loss、metrics均需要保证在同一device上,可以通过.to_device实现。
④Pytorch训练时没有Model.fit一步训练,需要使用for循环,然后使用loss.backward()做后向传播,opt.zero_grad每次循环梯度清零(保证不会梯度累计导致爆炸),还有opt.step()更新梯度。在测试时需要使用with torch.no_grad保证不更新梯度,进行训练和测试。
⑤Pytorch所有输入预报因子如果是4d,要以(N,C,H,W)格式输入,即(时间,预报因子个数,纬度,经度)格式输入,预报因子个数不再像tensorflow一样在第四个维度,而是在第二个维度。


大概就这么多区别,实际上理解了深度学习原理,从tensorflow到Pytorch还是比较容易转移的。


                               
登录/注册后可看大图




  自动绘图函数的教学视频已经发布了,发布在哔哩哔哩上,网址在下面,欢迎大家收看!  关于所用ERA-5数据,我分享在了另一篇帖子上(网址:http://bbs.06climate.com/forum.php?mod=viewthread&tid=97787&extra=&page=1

目前所有视频也都追加了视频引导以及函数引导,引导txt文件也分享在网盘中。

  本帖鸣谢气象家园@biubiubiu123 大佬,优酷OLDLEE大佬,以及郑中华教授等一切为科研教学做贡献却不求回报的大佬们!

   目前本函数的软著已经下来了(下图,身份证号打码了),注册软著主要是为了防止他人抢注。不过请大家放心,本函数将对大家永久公开、免费并且持续更新!最后再次感谢大家的支持!
20220504142522.png

   第零课:自动绘图函数-该怎么学习这个函数?(网址:https://www.bilibili.com/video/BV1Q94y1h7zD/
   

   第一课:自动绘图函数-序(网址:https://www.bilibili.com/video/BV1vt4y1z7u5/
   

    第二课:自动绘图函数-nc文件读取(网址:https://www.bilibili.com/video/BV1UV411t7uH/
   

    第三课:自动绘图函数-简单统计处理(网址:https://www.bilibili.com/video/BV1854y1s78U/   
   
    第四课:自动绘图函数-二维平面绘图函数(网址:https://www.bilibili.com/video/BV16V411t7Nb
   

    第五课:自动绘图函数-eof分解的计算及一维折线直方图(网址:https://www.bilibili.com/video/BV1wv411s7pR/
   

    第六课:自动绘图函数-SVD函数的实现(网址:https://www.bilibili.com/video/BV1ep4y1s7VF/)     
   
    第课:自动绘图函数-矢量图的绘制和填色矢量叠加图(网址:https://www.bilibili.com/video/BV1tT4y1P7Z6/
   

    第课:自动绘图函数-hdf5文件的读取及绘图(网址:https://www.bilibili.com/video/BV1SU4y1s7zC/
   

    第课:自动绘图函数-多个nc文件的读取(以风云4数据为例)(网址:https://www.bilibili.com/video/BV1vU4y1x7o5/
   

    第课:自动绘图函数-纬高图的绘制(网址:https://www.bilibili.com/video/BV1Jz4y1U7YJ/
   

    第十一课:自动绘图函数-求相关系数以及相关系数图的绘制(网址:https://www.bilibili.com/video/BV1bV411B7hn/      
   
    第十二课:自动绘图函数-合成分析的实现(网址:https://www.bilibili.com/video/BV1iy4y1E72B/
   

    第十三课:自动绘图函数-空间区域填色图的绘制(网址:https://www.bilibili.com/video/BV1DN411R7ZD/         
   
    第十四课:自动绘图函数-填色矢量等值线叠加图以及一些bug的修复(网址:https://www.bilibili.com/video/BV1ky4y1a7Cx/      
   
    第十五课:自动绘图函数-多个nc文件的读取(以noaa-hgt资料为例)(网址:https://www.bilibili.com/video/BV1y5411N7pR/)     
   
    第十六课:自动绘图函数-创建nc文件(网址:https://www.bilibili.com/video/BV1RK4y1S7Te/     
   
    第十七课:自动绘图函数-bug的修复和版本更新教程(https://www.bilibili.com/video/BV1vU4y1a7cn/     
   
    第十八课:自动绘图函数-txt文件的读取(站点数据)(网址:https://www.bilibili.com/video/bv1L64y1Q78q   
   
    第十九课:自动绘图函数-txt文件的读取续(格点数据)(网址:https://www.bilibili.com/video/BV1Wp4y187kt/     
   
    第二十课:自动绘图函数-趋势函数和数据的mask函数(https://www.bilibili.com/video/BV1Mv41157Nk   
   
    第二十一课:自动绘图函数-泰勒图的绘制(网址:https://www.bilibili.com/video/BV1mU4y1L7d9
   
    第二十二课:自动绘图函数-wrf后处理&MK检验&滑动平均(网址:https://www.bilibili.com/video/BV1KM4y1g7LV   
   
    第二十三课:自动绘图函数-Python如何做REOF?(网址:https://www.bilibili.com/video/BV1d341167kM/
   
    第二十四课:自动绘图函数-机器学习算法lightgbm的调优(网址:https://www.bilibili.com/video/BV1Cq4y1Q78i/
   
    第二十五课:自动绘图函数-两种波通量&偏相关&交换东西半球数据(网址:https://www.bilibili.com/video/BV1cq4y1U7cS/    
   
    第二十六课:自动绘图函数-风玫瑰图&小提琴图+旧函数更新(网址:https://www.bilibili.com/video/BV1BQ4y1Q7hz/

    第二十七课:自动绘图函数-插值+功率谱+小波分析(网址:https://www.bilibili.com/video/BV1vg411F7xf/

    第二十八课:自动绘图函数-去季节循环&数据排名筛选(网址:https://www.bilibili.com/video/BV1CT4y1o7uz/

    第二十九课:自动绘图函数-闭合系统的识别---以阻塞高压为例(网址:https://www.bilibili.com/video/BV1SL4y1b7ft/

    第三十课:自动绘图函数-K-Means算法(网址:https://www.bilibili.com/video/BV1Xb4y1H789/

    第三十一课:自动绘图函数---神经网络与卷积神经网络在气象中的应用(上)(网址:Python自动绘图函数设计思想与使用方法(自动绘图函数---神经网络与卷积神经网络在气象中的应用(上))_哔哩哔哩_bilibili

    第三十二课:自动绘图函数---神经网络与卷积神经网络在气象中的应用(下)(网址:Python自动绘图函数设计思想与使用方法(自动绘图函数---神经网络与卷积神经网络在气象中的应用(下))_哔哩哔哩_bilibili

    第三十三课:自动绘图函数---时间卷积网络在气象中的应用(网址:Python气象自动绘图函数设计思想与使用方法(自动绘图函数---时间卷积网络在气象中的应用)_哔哩哔哩_bilibili

    第三十四课:自动绘图函数---逐步回归及多元线性回归(网址:https://www.bilibili.com/video/BV1FL411P7nL/

    第三十五课:自动绘图函数---任意垂直截面绘图(网址:Python气象自动绘图函数设计思想与使用方法(自动绘图函数-任意垂直截面绘图)_哔哩哔哩_bilibili
   
    第三十六课:自动绘图函数---二进制文件的读取(网址:Python气象自动绘图函数设计思想与使用方法(自动绘图函数---二进制文件的读取)_哔哩哔哩_bilibili)   

    第三十七课:
自动绘图函数---GBDT三种方法&DBSCAN聚类&EMD分解&信息流(网址:Python气象自动绘图函数自动绘图函数---GBDT三种方法&DBSCAN聚类&EMD分解&信息流_哔哩哔哩_bilibili


    第三十八课:自动绘图函数---GBDT贝叶斯调优&Unet网络的编写(网址:Python气象自动绘图函数设计思想与使用方法(自动绘图函数---GBDT贝叶斯调优&Unet网络的编写)_哔哩哔哩_bilibili

    第三十九课:自动绘图函数---极地扇形图&bar图叠加&Lanczos滤波&交叉验证(网址:
https://www.bilibili.com/video/BV1pT411g7Hz/

    第四十课:自动绘图函数---Tensorflow&LightGBM&Xgboost的GPU版本安装(网址:https://www.bilibili.com/video/BV1Hd4y1S73Y/

    第四十一课:自动绘图函数---TCN原理的重新理解&TCN巨大bug修复&LSTM.GRU.RNN函数的编写(网址:https://www.bilibili.com/video/BV1iT411j7pE

    第四十二课:自动绘图函数---SVR/高斯过程回归/Lasso回归/岭回归在气象中的应用and浅析正则化(网址:https://www.bilibili.com/video/BV11g41187mu
    第四十三课:自动绘图函数---机器学习挑选预报因子RFE/CNN与RNN网络融合/CNN的heatmap图(网址:https://www.bilibili.com/video/BV1xm4y1F7ET/
   
    第四十四课:自动绘图函数---图片数据提取&热浪的识别&函数的改进(站点插值改进&多图自动绘图)(网址:https://www.bilibili.com/video/BV1sG411c7HC/

    第四十五课:自动绘图函数---ngboost&模型的储存与加载&机器学习and深度学习进行热浪分类任务(网址:https://www.bilibili.com/video/BV1HP41137wJ/
    第四十六课:自动绘图函数-Transformer和Resnet网络如何构建?(网址:https://www.bilibili.com/video/BV1jR4y1z7uR/

    第四十七课:自动绘图函数-NLP模型如何做多时次输出:上(Transformer模型多时次输出讲解)(网址:https://www.bilibili.com/video/BV1wm4y1U7nc/

    第四十八课:自动绘图函数-NLP模型如何做多输出:下(RNN和TCN模型多输出讲解)(网址:https://www.bilibili.com/video/BV1Wo4y1j7mX/


     第四十九课:自动绘图函数-骤旱的识别(网址:https://www.bilibili.com/video/BV1Hv4y1n7kx/



     第五十课:自动绘图函数-机器学习Loss_Function选择的重要性及多尺度卷积信息融合(网址:https://www.bilibili.com/video/BV1Zo4y1G7UL/

     第五十一课:自动绘图函数-深度学习降尺度SRGAN&多输出网络bug的修复(网址:https://www.bilibili.com/video/BV1W14y167aE/

     第五十二课:自动绘图函数-深度学习降维可视化SOM&TSNE+误差分析Triple Collocation(网址:https://www.bilibili.com/video/BV1yu4y1r7e2/

     第五十三课:自动绘图函数-台风探测+追踪+匹配(网址:https://www.bilibili.com/video/BV1gu4y1T7CW/

     第五十四课:自动绘图函数-深度学习降尺度网络ESRGAN(网址:https://www.bilibili.com/video/BV1WN4y1p7DN/

     第五十五课:自动绘图函数-时间超分辨率网络EfficentTempNet(网址:https://www.bilibili.com/video/BV1bu4m1K7nt/

     第五十六课:自动绘图函数-图卷积网络GCN&机器学习可解释性SHAP(网址:https://www.bilibili.com/video/BV1pt421b7EV/

     第五十七课:Pytorch部署及深度学习Tensorflow代码向Pytorch转移(网址:Python气象自动绘图函数设计思想与使用方法(自动绘图函数-Pytorch部署及深度学习Tensorflow代码向Pytorch转移)_哔哩哔哩_bilibili

                               
登录/注册后可看大图

  
  思考了很久到底要不要发这篇帖子,想想还是发一下,以供和各位大佬交流讨论。      
  本人Nuist的研一研究生,利用本升研的假期和开学来几个月,在明日科技的python网课以及气象家园大佬@biubiubiu123 的帖子(http://bbs.06climate.com/forum.php?mod=viewthread&tid=94639&extra=page%3D1)《分享一套适用大气专业的Python编程经验的指导下,学习了python基础指令以及python气象绘图。开学后又在杨老师的指导下进一步学习了python气象绘图的进阶版块,同时也想着能不能自己编程实现一个自动绘图函数?于是近一个月写了一部分包括数据处理和绘图的函数,并把他们打包成一个完整的功能型函数,可以用作绘图。.py文件和说明书以及附加的库已经放在下面了,免费下载。
    当然,本人技术水平有限,所以此函数写的可能有很多bug,将已知的一些缺陷告诉大家:
    1.本函数参数比较多,可能需要花一部分时间读取说明书。主要原因是这些参数都是必要的,如果去掉了可能导致函数功能的严重缺失。
    2.本函数为了节省篇幅没有try,except语句,所有报错均为系统函数报错。

    最后再次声明,本人技术水平有限,所有方法可能不是最简单的,有些地方甚至可能比较复杂。所以函数如果不合大家的意愿或者不好用请勿喷。。。也欢迎各位大佬对本人函数进行讨论和改进。函数有bug的话可以在帖子下面留言,本人会尽力尽快修复。有更多需要的大佬也可以自行修改本人的函数。
   一些成果图给大家看一下:
2.png
3.png
4.png
6.png



                               
登录/注册后可看大图



第一次更新:
  突然发现直接上传附件下载虽然可以设置不需要贡献,但是还是需要金钱。。。所以仍然打包到网盘里面供大家下载了。其中包含.py文件(Auto_paint_self.py),说明书和两个必要的函数库(xMCA做SVD必要,mktest是做mk检验的,目前没用到,以后更新版本可能会用到)。还有同学问shp文件哪里找的,我把自己常用的几个shp文件都给大家了。其中country1是世界地图,chn那几个是中国地图(0代表中国国境线,1代表省界,2代表市界,3代表县界)。都在下面的网盘中,网盘链接永久有效!


                               
登录/注册后可看大图


第二次更新:
  增加了一个新功能,可以在line_or_bar参数中选择‘onlydata’,从而只返回线性趋势值或者多项式拟合值或者滤波值或者去趋势值(目前还暂时没有加入大函数)。最近在准备高等大气环流考试,11月26号以后会在说明书中加入小函数的使用说明,大家可以自由组合小函数,创造出更多的功能。
  有人也问到了python基础的网课在哪里学的,网盘地址也分享给大家,大家可以自由学习!

基础课程建议大家学习到13章就好,13章往后的都是有关网页开发方面的,对于气象绘图没什么大作用。看完基础课程就可以去看@biubiubiu123 大佬的教程了,再次感谢@biubiubiu123 大佬对于python气象绘图的贡献!


                               
登录/注册后可看大图



    第三次更新:有朋友问到能不能绘制垂直方向物理量的分布图,事实上之前的函数中已经写过了类似函数,只不过在说明书中没有加入说明,原因就是个人认为这种函数不能算新功能的函数,只是把绘图中的坐标轴由xy调整成了yz或者xz。但是既然有朋友问到了还是在说明书中加入了这两个函数的说明,主要是绘制垂直方向的填色图和流场图(quiver图),steamline图在垂直方向上不太好画,主要原因是垂直方向的分辨率不是均匀的,而streamline要求绘图分辨率必须均匀。当然目前绘制的是纬高图,经高图其实把x轴传入的参数lat改成lon就行了。画纬高图的时候要固定某个经度或者将经度压缩(求平均,用datamode ‘ave’加上dealmode ‘arealon’参数来对经度求平均)。个人认为还是因为没有在说明书中加入小函数(就是基本功能函数,比如单画填色图,单画流场图的函数)的说明。下周四(11月26号)楼主有考试,最近在复习考试内容,11月26号之后会在说明书中加入小函数的使用方法,方便大家自由组合使用。
    下面是两个新函数的绘图成果展示:
    7.png
    5.png


                               
登录/注册后可看大图



  第四次更新:本来26号就要更新的,但是气象家园被封禁了。。。刚才好不容易挤上来,所以才今天更新。
  更新内容:在说明书中加入了小函数的说明,以供大家自由组合使用。增加了svd小函数求同性相关场的函数(svd多了4个返回值);增加了r相关系数小函数求两个场相关系数的函数(两个场的时间维,空间维格点数必须严格相同;通常用于求某个变量在某个场的持续性如何);在open_data中把resolution参数分裂成了latresolution和lonresolution以适应x轴分辨率和y轴分辨率不同的数据。


                               
登录/注册后可看大图


  第五次更新:
之前发现了一个大bug,就是绘图的时候lon坐标轴绘制的都是错误的,主要原因是因为ccrs.PlateCarree()中central_longitude这个属性设置的错误,现在已经更改。
  而且发现了无法对季节平均和年平均数据做svd的bug,原因是对时间求平均后生成的变量是array类型,而python中用xMCA求svd的话要求变量必须是DataArray类型,所以现在将求完平均后的array又转化成了DataArray类型,所有timemode类型的数据都可以求svd了。
  当然本次更新对用户操作方面没有任何影响,属于修复bug更新,没有新增加功能,仅做记录用途。
  今年寒假可能会录制一些python绘图函数设计的教程视频,以供大家更方便的学习。其中会具体介绍各个函数的设计思路,敬请期待!

                               
登录/注册后可看大图


  第六次更新:
本次更新加入较多内容,建议用户仔细阅读新加内容,以免使用函数时报错。
  1.增加了svd函数模块的模态方差贡献的输出   
  2.shaded和quiver绘图函数中增加了一个新功能,可以画3d quiver图,所以引入了两个新变量:v3d和levels。v3d其实就是w分量,levels就是z轴。当画二维图时这两个变量可以任意赋值。
  3.增加了opendata函数中level的选项,可以自主选择层数区间或者自主选择层数,'self'代表自主选择层数区间,此时level输入格式为[300,1000],代表层次区间的起点和终点,高层在前低层在后;'selfchose'代表自主选择层数,此时level的输入格式为[500,700,800,1000],代表自主选择的层次,高层在前低层在后
  4.增加了bar和line图中的一个选项,是否绘制一倍标准差线,ifstdline为'yes'代表绘制,'no'代表不绘制
  5.svd和r函数模块中changeresolution分裂为了changeresolution1和changeresolution2的选项,因为考虑到做svd和r的两个变量的分辨率可能不同,用changeresolution1和2来改变两者分辨率使其相同。
  6.r函数模块现在可以求两个三维场的相关场了,只需要rmode填写'area_area'即可,但是要求两个变量三个维度的长度都是相等的,通常用于求一个变量在一个场的时间持续性  
  7.对求eof的函数进行了订正,之前所用eof函数是错误的,参考文献(http://bbs.06climate.com/forum.p ... tra=page%3D1&page=1) 感谢@不想去气象局 大佬的珍贵发现。
  还是强烈建议大家使用小函数组合绘图,因为大函数的功能比较固定,可能不能适用于所有的同学。小函数组合起来绘图是更加灵活的。本人最近在做陆面过程的研究,基本上用合成分析之类的方法都是将一个『岷希缓蟠恚挥蠸VD用的是大函数(SVD大函数的适用性还是比较高的)。
    QQ截图20201203182951.png
    1.png
  3维quiver图本人画了一下,实测感觉不是那么好用,因为毕竟是投影到二维平面的三维quiver图,所以分辨率太高的情况下辨识度很低,而且由于自由大气中w风速比u和v风速小一个量级,所以对于垂直运动的辨识度反而没有纬度-高度垂直剖面图和经度-高度垂直剖面图的辨识度高。
   2.png

                               
登录/注册后可看大图



第七次更新:本次更新加入了读取hdf5文件的函数,说明书中data_all函数也有改动,建议阅读说明书中新增加的部分。
  1.增加了读取hdf5的小函数(注意,此函数中timestart和timeend与之前不同,详情请见函数中具体说明)
  2.分裂了data_all函数中ifchosetime选项,填写'nc'表明在nc数据中选择时间,填写'hdf5'表明在hdf5中选择时间, 填写其他表明不选择时间
  3.增加了绘制hdf5数据填色图的大函数
  4.多引入了一个函数库h5py,用于读取hdf5数据,需要读者在anaconda中自行下载该函数库

  最近由于python杨老师明确了期末考试要求用hdf5文件绘图,而不是nc,所以本人开始考虑对hdf5文件进行读取处理。写了一个open_hdf5()函数,不仅可以读取hdf5文件,而且和后面的数据处理函数以及绘图函数的兼容性很强。
  当然,对于该函数的使用,需要一些准备工作。
  首先,由于函数中的filedir是一个文件夹,所以我们要把我们需要的hdf5文件全部装入一个空文件夹内(注意一定要是空文件夹,如果有其他文件读取过程中会报错)
   1.png
  然后还要有一点,这些文件的名称中必须要带有时间信息,比如上图中我使用的全球火灾排放数据库的文件,就有每年的时间编号信息,从1997年一直到2015年。因为只有文件的排序是按照时间排序的,那么函数读取的时候才能按照时间顺序进行读取。
3.png
  然后就可以使用函数了。至于v_path参数是指所需要绘图的变量在hdf5文件中的路径。我是用hdf5 explorer这个软件打开的,该软件网上有免注册版本,查看hdf5文件是很方便的。
   2.png
  假如我要绘制biosphere中的01即一月份的Rh变量(通常只有 4.png 标记的数据才能绘制,文件夹标记的数据肯定是没法绘制的),那么v_path就填写''biosphere/01/Rh'',这样从1997年到2015年的1月份的Rh变量就存进变量v里面了。但是这样v还是一个三维数组,不能用于绘制二维填色图,还需要把v放进data_all中处理,处理方式和之前处理nc数据是一样的,可以求ave对时间求平均,或者求anamoly距平或者求standard标准差,再chosetime选择某个时间点绘图;也可以直接chosetime选择某个时间点绘图,总之降维成二维再放入Auto_shadedorquiver函数中绘图就行了。
  以下是我绘制的2015年1月中国的生物异氧呼吸排放(官方是这么叫的)图。
   3.png


                               
登录/注册后可看大图


第八次更新:
1.现在在shadedorquiver中加入了一个新的功能:可以绘制填色图或者等值线图和风场图的叠加图。具体操作为:shadedorquiver填写'shadedandquiver'表示绘制填色和风场叠加图,填写'lineandquiver'表示只绘制等值线和风场图。
  今天在看论文的时候突然看到了有不少大佬写论文经常把填色图和风场图叠加在一起,从而看高低空配置。所以我在想能否通过对Autoshaded_quiver函数的修改增加可以绘制填色和风场叠加图以及等值线和风场叠加图。于是便增加了一些代码,使得现在Autoshaded_quiver函数可以绘制这种叠加图了。也增加了两个大函数,供不太会组合小函数的python初学者绘图,增加的大函数说明在2.10和2.11里面,小函数也修改了3.8即Autoshaded_quiver函数的说明,有需要的同学可以自行阅读。
  在绘制这种叠加图时,Autoshaded_quiver中的v需要填写绘制填色图所用的变量(二维数组),vplus填写绘制风场图所用的第一个变量(水平图通常为u风,垂直图通常为u风或者v风),v3d填写绘制风场图所用的第二个变量(水平图通常为v风,垂直图通常为w风),lat和lon以及levels参数的填写和之前绘制xy,yz,xz图相同,详情可以参见说明书3.8部分。  以下是新增功能的成果图:
   1.png 2.png


                               
登录/注册后可看大图


  第九次更新:
好久没有更新了,主要是楼主最近一直在准备期末考试,所以函数只更新了一点点新的内容。主要是更新了三个方面:1.shaded图中color的问题,现在shaded图中valuemode选择‘+’和‘-’时,即绘图数据全为正值或者负值时,使用渐变的红色/蓝色会更好看一些。2.hdf5图中文件路径不再限制末尾是否要加'/'了,现在加入了一个if语句自动进行判断。
  以上两点属于函数内部问题,不需要读者重新学习新的部分。
  3.在line_or_bar中的iftend加入了一个新的功能'area',输入一个三维场(时间、纬度、经度),会对空间上每个格点的事件序列求线性趋势,然后返回一个二维线性趋势场;当然,如果iftend选择‘area’,那么line_or_bar一定要选择‘onlydata’,因为既然返回二维场了,我们肯定要后续用Autoshaded_quiver函数绘图,而不是用line_or_bar函数绘图(该函数只能绘制一维图,不能绘制二维图)。新加入代码如下:
   1.png
  增加这个新功能的原因是最近阅读到一些文献,不少都求了空间线性趋势场,从而看某个变量在空间不同位置的变化趋势(增加或者降低)。
  楼主最近用MSCM气候模式做了CO2的敏感性试验,看了看没有CO2的话中国地表温度的变化趋势(从1951年到2049年)在空间上的分布会怎样,于是绘制了下面这幅图。
   3.png
  通过图上发现没有CO2的话100年内我国全境地表温度都会线型下降,但是尤其以西南地区最为明显(colorbar下面的数值代表线性趋势的斜率)。
  说明书和函数里面也补充了绘制该图的一个大函数,刚入门的读者可以直接使用该大函数绘制出类似的线性趋势空间分布图。


                               
登录/注册后可看大图


第十次更新:
最近录制了自动绘图函数的教程视频,发在了哔哩哔哩上,对于自动绘图函数的使用还有疑惑以及想要了解自动绘图函数编程思想的同学可以去看看,网址放在文章最前面了,欢迎大家收看。


                               
登录/注册后可看大图



第十一次更新:
1.更改了某些函数的名称 open_data →open_data_onenc
2.更改了某些变量的名称,以避免在同时调用时混淆 Autoshaded_quiver中的title更名为shaded_quiver_title,Autobar_or_line中的title更名为bar_line_title
3.增加了data_all的处理功能
4.优化了svd函数
5.增加了Autoshaded_quiver中参数valuemodel的选择,现在选择'+r'代表红色为小值,白色为大值;'-r'代表蓝色为小值,白色为大值。主要用于显著性检验绘图

                               
登录/注册后可看大图



第十二次更新:
1.增加了Autoshaded_quiver的功能,当'shadedorquiver'为'shadedandquiverandline'时代表绘制填色图、矢量图和等值线图叠加图,具体绘制方法见视频教程。同时也在Autoshaded_quiver中增加了新的变量v4d,用于绘制填色矢量等值线叠加图时保存绘制等值线的变量 下载.png
2.更改了一些函数的变量顺序,其中data_all函数中把timename、iflevel和times参数提前,以便保证times后的参数都是需要新输入的,times前的函数都是由上面的函数继承过来的。Autobar_or_line中也把中间的参数time提到了参数times之后,以保证timeend之后的参数都是新输入的,timeend之前的参数都是由上面的函数继承过来的。此举不影响函数使用,仅仅需要注意新参数输入顺序。
3.修复了Autoshaded_quiver中的一个bug,该bug导致在使用era5和noaa以外的nc文件时,经纬度不能够正确读取。现在已经修复,会在视频中指出。



                               
登录/注册后可看大图


第十三次更新:
1.增加了一个新的函数,open_data_morenc用于读取多个nc文件(主要以天为分辨率,通常一年是一个文件)。其参数的输入与open_data_onenc类似,其与open_data_onenc不同之处具体见说明书。其使用方法具体见视频教程第十四课。


                               
登录/注册后可看大图


第十四次更新:
1.增加了Autobar_or_line中iffilter和ifdetend的新功能,现在他们也可以像iftend一样对一个三维数组做滤波和去趋势了,当然滤波和去趋势都是对三维数组的时间维做的.选择iffilter和ifdetend为'area'即可对一个三维数组做滤波和去趋势。最后返回一个三维数组,可以用作eof。2.由于1的新功能,所以为了使其输出的三维数据能够正常做svd,所以必须要对其进行DataArray化,所以在Autobar_or_line中引入了新参数timename,latname,lat,lonname,lon。这几个参数跟随在timeend之后,但是并不需要重新引入(与open_data_onenc或者open_data_morenc中输入的同名参数意义相同)。
3.增加了一个新的小函数,该小函数的功能是创建一个新的nc文件,并将数据写入。其具体用法详见说明书以及教学视频。
4.修复了之前iftend的一个bug,该bug曾经导致在iftend选择'area'时若数组中有nan值,则会报错。


                               
登录/注册后可看大图


第十五次更新:
1.增加了create_nc函数的一个参数,timeinterval来指定生成文件的时间间隔,详情信息请参照说明书3.11。2.修复了Autobar_or_line函数中的一个bug,该bug导致做空间去趋势时如果有nan值会报错,现在已经修复。



                               
登录/注册后可看大图


第十六次更新:
1.修复了open_data_onenc和open_data_morenc两个函数中的两个bug。第一个bug是有关于经纬度读取方面,之前只能读取全球范围的经纬度数据,现在更新之后可以读取任意范围的经纬度数据了。
2.第二个bug是关于v.loc的bug。该bug导致使用v.loc进行某月份或者某季节或者某天的定位时,其数组v的时间维必须要做'time',即timename必须为time,否则会报错,现在已经修复。

    之前的函数在读取方面即open_data_onenc和open_data_morenc有两个比较大的bug,一个bug是不能够读取非全球范围的数据,另外一个是使用v.loc功能锁定数据到某个季节/月份/天的时候如果timename不是'time'将会报错。
    其中第一个bug的原因是计算问题,原计算是纬度从90°N开始计算,减去当前起始纬度和终止纬度(如果纬度是从90°N到90°S的话),这样的话就相当于默认起始纬度一定是从90°N开始的,现在改为了np.nanmax(lat)表示从最大纬度开始,这样可以适用于区域数据。同理应用在经度上,之前经度默认从180°W或者0°开始,现在通过-np.nanmin(lon)来减去最左经度,从而适用于区域数据。
QQ截图20210315164418.png
  第二个bug的原因是由于v.loc的方法问题,v.loc其中调用v.time.dt.xxx方法时(xxx代表season,day,month等),其time代表的是时间维度序列的名称。由于大部分资料的时间维度都叫做'time', QQ截图20210315164217.png 所以之前使用一直不报错。但是最近作者使用JRA-55的资料,发现其中的'时间维度不叫'time', QQ截图20210315164130.png 就会导致使用v.loc报错,目前通过getattr()方法,设定v.time.dt.xxx中的time等同于timename即时间维度名称,可以适用于所有时间维度数据了,即使时间维度名称不叫作'time' QQ截图20210315184553.png


                               
登录/注册后可看大图

第十七次更新:
1.修复了data_all函数中的一个bug,该bug导致对数据做除了时间距平/标准化以外的距平(如空间距平/标准化)时会导致报错。原因是求np.nanmean时没有填写keepdims=True这一选项,现已经修复。
2.大更新:作者优化了自动绘图函数:Autoshaded_quiver和Autobar_or_line的参数。之前不必要的参数太多,现在把许多不必要的参数都设立为了默认参数,如果使用者需要修改可以直接输入默认参数(详情也会更新视频教大家使用)。
3.大更新:将open_data_onenc和open_data_more_nc合并为open_data_nc,从而减少代码量。
4.大更新:从该版本开始,作者删除了所有大函数的编写,原因是许多大函数并不能适用于所有读者。有些读者反映大函数的使用率远远小于小函数,原因是大函数中许多参数过于固定,修改起来也非常麻烦。
5.增加了selftime函数中selftimemode的一个功能,选择'day'时可以对指定的v选择某几天的数据值,详情见说明书中selftime描述。
6.由于open_data_onenc和open_data_more_nc的合并,所以creat_nc函数为了更好的衔接open_data_nc,所以更改了一些参数的名称。
7.更新了说明书,现在说明书中详细说明了各个小函数的参数(包括输入和返回)的输入方法。

                               
登录/注册后可看大图


第十八次更新:
1.修复了data_all函数中ifchosetime模块无法选择某一年的bug。其bug原因为之前open_data_nc(现在已经被分裂到deal_data_time函数中)中做完的'yearave'和'seasonave'以及'monthave'后的times数组中年份为整形,而不是字符串型,无法转化为时间,故会报错。
2.把open_data_nc中对时间进行处理的模块(包括选择某一季节,月,日以及做年平均、季节平均、月平均)分离开来,单独生成一个函数deal_data_time。这样做的目的一是有利于后面处理txt文件也可以做各种时间处理,二是在读取nc文件后可以先对所有时间序列滤波,后选择某一个季节(和先选择某一个季节后滤波不同)。
3.在Autoshaded_quiver中增加了一个新的参数:section。该参数代表绘制填色图或者等值线图的数据分割数量,如填写10.0代表图中数据分为10个区间。填写的数值越大填色图看起来分辨率越高,填写的数值越小填色图分辨率越低。默认值为10.0。详情请参见说明书2.9。
4.修复了Autoshaded_quiver中的一个bug,该bug曾经导致colorbar的刻度位数过多,现在通过判断以及round函数使得colorbar刻度位数合理。
5.增加了一个新的函数open_data_txt。该函数用于处理txt站点数据并且把txt文件中的站点数据插值到格点当中。详情请见说明书2.11以及bilibili上自动绘图函数相关视频。



                               
登录/注册后可看大图

第十九次更新:
1.为了使得open_data_txt能够更好的与create_nc结合使用(即实现将txt文件数据整合后输出为nc),更改了open_data_txt函数中几个变量的名称(将txt_v_name改为v_name),同时也增加了open_data_txt函数中几个默认参数用于选择空间范围(详情参见python自动绘图函数说明2.11)。
2.修复了open_data_nc中一条重复命令,该命令在计算最左经度和最右经度时命令产生重复,现已修复。由于该修复不改变参数,故不影响函数正常使用,说明书中也不做过多阐述。
3.修复了open_hdf函数中的一个bug,该bug导致当lon和lat是一维数组是无法正确读取,现在已经修复。由于该修复不改变参数,故不影响函数正常使用,说明书中也不做过多阐述。


                               
登录/注册后可看大图

第二十次更新:
1.将open_data_txt更名为open_data_txt_staion(因为有open_data_txt_grid函数的引入),并且增加了其中一个参数:timespace用于选择txt文件的时间间隔。详情见说明书2.11
2.修复了open_data_nc中一条重复命令,该命令在计算最左经度和最右经度时命令产生重复,现已修复。由于该修复不改变参数,故不影响函数正常使用,说明书中也不做过多阐述。
3.将open_hdf5函数更名为open_hdf,并且加入新功能:该函数不仅可以读取hdf5文件,现在也可以读取hdf文件了。读取hdf文件需要用到函数库:pyhdf,需要读者通过'conda install -c conda-forge pyhdf'命令自行下载。open_hdf函数引入新的参数hdfmode和timespace,用于确定打开文件类型以及确定文件时间间隔,具体参见说明书2.3。同时删除参数timeover(优化后该参数用不到了)。
4.更新了一个新的函数open_data_txt_grid,该函数用于读取txt格点数据。详情见说明书2.12和biliblili上的教学视频。
5.增加了Autoshaded_quiver中的两个新功能,其中第一个新功能可以maskout掉所选择区域外的数值。第二个功能是可以在地图上画一些矩形框以标注关键区。详情请见说明书2.9以及biliblili上的教学视频。
6.修复了Autobar_or_line中对空间做去趋势和做滤波时的bug。该bug导致做空间滤波时某点的时间序列中如果有nan值,则滤波结果为该点的时间序列全部为nan值;还导致空间去趋势只能处理时间序列全为nan值/全不为nan值的点,对既有nan值又有非nan值的点无法处理。现在已经修复。
7.修复了Autoshaded_quiver函数中maskout时只能maskout填色图的bug。现在对于等值线、显著性打点图都可以进行maskout了。(已知bug:由于maskout函数不支持cartopy的风矢量图和等值线标记的maskout,目前风矢量和等值线标记无法maskout,后续会尝试修复)


                               
登录/注册后可看大图

第二十一次更新:
1.修复了eof函数的一个bug,该bug导致某些不是float类型的数据(特指整形数据)做不了eof。现在已经修复,修复方法为在做eof之前把v转化为np.float64类型。
2.增加了deal_data_time函数的一个功能,现在可以对时间跨度为季节或周的数据进行时间处理了。只需要对timespace填写为'season'或'week'即可。但是目前timespace为'season'或'week'时的处理方法有且只有'yearave'(季节数据无法做月平均,季节平均;周数据做季节平均处理不方便)。
3.增加了create_nc函数的一个功能,现在timesapce填写'year'时可以生成跨度为年的时间序列,填写'season'时可以生成跨度为季节(即3个月)的时间序列。即创建的nc文件支持跨度为年和季节的数据(前提是输入进来的时间序列times跨度为年和季节)。
4.优化了Autobar_or_line函数的代码,之前的代码有很多不必要的操作。同时删除了Autobar_or_line中的三个参数timemode,timestart,timeend,因为他们不再会被用到了。
5.增加了deal_data_time函数的新功能,现在可以做更多时间处理了。之前对月数据只能做单个季节的平均,对天数据也只能做单月、单季节平均,现在支持每年的12各月以及4个季节的平均了!而且现在还可以对时间间隔为周和季节的数据做年平均。现在还支持对数据做sum操作即某段时间求和操作。详情见说明书2.2中timemode后新增加内容!
6.由于deal_data_time中有关于timemode新功能的增加,所以Auto_SVD函数中某些和timemode有关的判断语句也更新了。由于该更新没有引进新的参数,不影响正常使用,可以忽略。

                               
登录/注册后可看大图

第二十二次更新:
1.修复了Autoshaded_quiver中的一个bug,该bug曾经导致使用纬度为0到360°的nc文件绘制西半球的二维空间图时坐标轴无法正常显示的问题,现在已经解决。解决方法为在在Autoshaded_quiver proj = ccrs.PlateCarree()下面增加一行central_longitude=(lonleft+lonright)/2,同时改ax = fig.add_subplot(111,projection = proj)为ax = fig.add_subplot(111,projection = ccrs.PlateCarree(central_longitude))即可。该操作用于让地图的x方向中心设定为经度中心。
2.修复了Autobar_or_line中的一个bug,该bug导致x坐标轴的时间可能会过于精细(有时分秒的times将会使得x轴精细到时分秒)。现在设定了坐标轴默认为年-月(本人是搞气候的,很少会用逐天数据绘制折线图,有需要的同学自己改函数中time1.append(pd.to_datetime(np.str(np.array(times))).strftime('%Y-%m'))中strftime后括号中的内容)。

                               
登录/注册后可看大图


第二十三次更新:
1.修复了Autoshaded_quiver的一个bug。该bug曾经导致在上个版本更新后maskout功能失效(maskout后填色图消失,为全白地图)。原因为设置ax = fig.add_subplot(111,projection = ccrs.PlateCarree(central_longitude))时maskout无法使用。为此添加一个新参数ifglobal,该参数表明是否要绘制全球(尤其是经度跨越全球即0°到360°)地图,如果选择ifglobal为'yes'则绘制全球地图,使用ax = fig.add_subplot(111,projection = ccrs.PlateCarree(central_longitude)),但不能使用maskout功能(全球地图通常也不做maskout);如果为'no'则设定ax = fig.add_subplot(111,projection = proj),可以使用maskout功能,但是不能够绘制全球地图,否则可能报错。
2.增加了Autoshaded_quiver的一个新功能,该功能可以手动设定vmax和vmin即手动设置地图变量所显示的最大值与最小值。但是要注意,在valuemode为'+-'或者'-+'的情况下为了保持colorbar对称性仍然取vmax和vmin中绝对值较大的一个作为变量上限/下限。增加的参数为ifself_vmax_vmin和selfvmax以及selfvmin,详情请见说明书2.9。
3.增加了Autoshaded_quiver的一个新功能,该功能可以在世界地图上叠加中国各省地图(之前的country1地图中国大陆内部各省不显示),同时也可以绘制南海。增加的参数为ifchina和chinamap和southseamap以及southsealoc,详情请见说明书2.9。
4.调整了Autoshaded_quiver几个默认参数的位置,对于使用函数无任何影响,读者可以选择忽略这条更新。
5.修复了selftime函数的一个bug,该bug导致selftime函数之前选择月和日的时候只能选择某年的某个月或者某年的某个月的某日,现在更新之后可以选择时间序列中所有的指定的月份和日了。同时增加了selftime的返回值,将times也圈定在选择的新时间内并返回。详情见2.7
6.修复了open_hdf函数的一个bug,该bug导致open_hdf函数与deal_data_time函数的衔接出现问题(主要体现在无法对times进行loc操作)。现在已经修复。
7.增加了deal_data_time的一个新功能,现在可以对自己选定的时间做平均了(如选定4,5,6,7月,可以对每年的这四个月做平均)。具体参见2.2timemode说明。
8.修复了deal_data_time中做年平均季节平均后生成的times不为datatime64格式的bug。
9.修复了open_data_nc函数中当ncmode为more时最后返回的v不是DataArray类型的bug。
10.增加了Autoshaded_quiver的一个新功能,该功能可以对某省进行maskout了。不过这也改变了ifmaskout的选项,填写'country'代表对国家进行maskout,填写'province'代表对某省份进行maskout。对国家进行maskout的地图只能使用country1.shp,对省份进行maskout的地图只能使用province.shp(都是完整的中国地图,bou2_4p由于是utf-8编码所以无法maskout)


                               
登录/注册后可看大图

第二十四次更新:
1.增加了一个新函数,Auto_linregress,该函数用于求空间回归,即将一个时间序列回归到一个空间场上,或者求两个时间序列的回归系数,或者将一个场回归到另外一个场上(两个场大小要相同),详情参见bilibili视频教程和说明书2.13.
2.增加了eof的新功能,同时也增加对应功能所对应的默认参数。该参数为eofmethod,可以选择做eof的方法。详情参见说明书2.4
3.增加了Autoshaded_quiver函数的三个新功能,第一个功能可以绘制北极极地投影(回来会增加南极极地投影以及兰波托投影的功能);第二个功能可以绘制网格线;第三个功能可以选择在ifchina='yes'的情况下是否绘制南海地图。增加对应参数projection_mode、ifgridline、ifsouthseamap,详情参见说明书2.9
4.增加了Autobar_or_line的一个新功能,可以设定坐标轴日期格式,详情请见2.10新参数xlabelformat。


                               
登录/注册后可看大图

第二十五次更新:
1.更新了Autobar_or_line的一个新功能,该功能可以绘制散点图,只需要让line_or_bar为'scatter'即可。同时由于该功能引进了新的默认参数vs。具体用法见说明书2.10及最新一期视频教程。
2.更新了Autobar_or_line的一个新功能,该功能可以绘制多条折线(通常用于数据之间进行对比)。同时由于该功能引进了新的默认参数linenum。具体用法见说明书2.10及最新一期视频教程。
3.优化了Auto_SVD的一个判断语句,即现在判断是否需要将lp和rp进行transpose的依据不再是timemode,而是lp和rp的纬度维和经度维是否和其本身的纬度维和经度维长度对应(如果不对应则需要transpose)。该优化不涉及到参数的更新或者引进,故可以忽略。
4.增加了Autoshaded_quiver的一个新功能,读者可以自己选择绘制shaded图的颜色了。为此增加了一个新的参数,shadedcolor。具体用法见说明书2.9及最新一期视频教程。
5.增加了一个新的函数,Auto_region_data_mask,改函数用于对数据进行某个区域(如某个省,某个国家)的mask。具体用法见说明书2.14及最新一期视频教程。



                               
登录/注册后可看大图

第二十六次更新:
1.修复了deal_data_time中对日数据(timespace为day时)求全部月平均、全部季节平均、单季节平均(timemode为'all_monthave'、'all_seasonave'、'single_seasonave')时的严重bug,该bug导致增加天数不正确,目前已经修复。
2.增加了deal_data_time中的一个新功能,timespace选择hour时,可以选择timemode为'dayave'或者'daysum'求日平均或者日求和了。此时参数time为数据一天有多少个时次,例如数据一天有4个时次,time就填写4。详情参见说明书2.2.
3.由于deal_data_time新功能的增加,现在open_data_nc中可以自动判别填写的timestart和timeend格式,从而与源数据中时间做比较。详情见open_data_nc函数内部。
4.优化了create_nc中生成时间维度time的语句。
5.增加了selftime函数的一个新功能,该功能可以对每年都截取某月-某日到某月-某日(如6月25日到8月31日),详情见2.7.
6.说明书中Autobar_or_line中有关于extent的描述有问题,现已经修复。
7.增加了泰勒图功能,详情见2.15和bilibili新一期视频。


                               
登录/注册后可看大图

第二十七次更新:
1.增加了Autobar_or_line的一个新功能,现在绘制std标准差线可以自己指定标准差倍数了。详情见说明书2.10参数ifstdline。2.修复了Autobar_or_line的一个bug,该bug曾经导致序列如果有nan值将使绘制line图或者bar图报错,现已修复。
3.增加了一个新函数Auto_mktest用于mk检验。详情见说明书2.15及最新一期视频教程。
4.增加了一个新函数Auto_smooth用于滑动平均。详情见说明书2.16及最新一期视频教程。
5.增加了open_data_nc中ncmode参数的一个新功能,填写'one_wrf'时可以对wrfoutput文件进行处理了。详情见说明书2.1


                               
登录/注册后可看大图

第二十八次更新:  

  最近鄙人在做自己的论文的时候发现一个问题,python目前似乎没有方法做reof,只能做eof。但是众所周知,在我们分析降水、气温分区时,reof是重要工具。如果不能做reof,那就失去了在做分区研究时候的优势。
  在气象家园python模块输入reof,发现讲reof的并没有多少,只有两个帖子,一个是提问题的帖子,另外一个代码量过多,过于复杂,难以理解。
  
  但是我偶然之间发现了华裔教授郑中华在github上的帖子(网址:https://github.com/zzheng93/pyEOF),发现其编写了reof代码,可以很好的做reof。但是其API文档(网址:https://pyeof.readthedocs.io/en/latest/notebooks/basic_usage.html#EOF-Analysis)有很多多余的代码,不够简洁,而且还有许多代码没有写在API中,会导致报错。于是我发邮件联系了郑中华教授,跟他深入交流了reof程序问题,终于在这几天有了自己的理解,并且做出来了自己的reof图。
  首先来说必要函数库:
  numpy、pandas这两个库都可以通过conda install命令安装,并且大部分朋友已经安装了这两个库。新引入的库有rpy2,因为程序用到了r语言,该库用conda install -c conda-forge rpy2安装。还有pyEOF库,用于做reof,用pip install pyEOF命令安装。当然要自己安装r语言,在https://mirrors.tuna.tsinghua.edu.cn/CRAN/上可以自行下载。
  #安装完之后,需要在python中先运行命令,


import os
  
os.environ['R_HOME'] = r'D:\R_HOME\R-4.1.0'


#由于我的R语言安装在D盘的R_HOME文件夹下的R-4.1.0文件夹下,所以我这么输入,如果大家的路径不同,需要更改为自己的安装路径。
#不执行该命令的话pyEOF库导入不进来!


#接下来是引入函数库,

import numpy as np


import pandas as pd


import rpy2 from pyEOF


import df_eof,get_time_space


#只需要这4个库就可以。
#然后就是代码部分,

latlong = v.shape[1]


lonlong = v.shape[2]


#v是我们的变量,其必须要是xr.Dataarray格式。做这一步的原因是我们后续要把变量还原成二维,方便绘图。


vs = v.to_dataframe([v_name]).reset_index()

#由于郑教授的reof程序只能处理pd.DataFrame格式数据,所以要先把变量v转化为dataframe格式,其中v_name为变量名称,填写字符串类型,如'air',最好与nc文件中的变量名称一致。

vs.columns = [timename,latname,lonname,v_name]


#这一行规定了vs的每一列名称,其中timename是时间维名称,如'time';latname是纬度维名称,如'lat';lonname是经度维名称,如'lon';v_name是变量名称,与上面的v_name相同。timename,latname和lonname最好也与nc文件中各个维度名称一致。

vss = get_time_space(vs, time_dim = timename, lumped_space_dims = [latname,lonname])


#这一行为了把三维的vs压缩成二维,因为郑教授的reof程序只能做二维reof。其把经纬度压缩了,其中timename,latname和lonname与上面的一致。

pca = df_eof(vss,pca_type="varimax",n_components=eofnum)


eof = np.array(pca.eofs(s=2, n=eofnum))


pc = np.array(pca.pcs(s=2, n=eofnum))  


var = np.array(pca.evf(n=eofnum))


#这里开始做reof,第一行做reof,第二行取空间模态,第三行取时间系数,第四行取方差贡献。其中pca_type='varimax'不用修改,eofnum代表依照前几个模态做旋转,填写整数,如10代表依照前10个模态做旋转。s=2也不需要修改。eof就是空间场,pc是时间系数,var是方差贡献。


  eof = eof[eofmodel-1,:]
  pc = pc[:,eofmodel-1]

#通过这种方法可以单独把一个模态的空间场和时间系数取出来,其中eofmodel就是你要取的模态,例如eofmodel为1代表取第1模态,以此类推。但是eofmodel不能大于eofnum。


eof = eof.reshape(latlong,lonlong)


#最后通过reshape把eof重新变成二维变量,方便绘图。


print(var[eofmodel-1]/np.nansum(var))

#还可以通过这种方式把方差贡献输出来,其中eofmodel与上述含义相同。


最后得到的eof是一个二维场,具体到某一模态的空间场,pc是一个一维场,具体到某一模态的时间系数(如下图为eofnum取10,eofmodel取5,即以前十模态为依据进行旋转,取第五模态绘图的空间场和时间系数图)。



当然也把这些代码加入到了Auto_eof函数中,具体可以见最新一期教程视频(Python如何做REOF?)。
以下是这次更新的主要内容:
1.删除了Autobar_or_line中一个参数time,因为它经过改版后在函数中并没有用到。
2.增加了Autobar_or_line中参数xlabelformat的一个新选项,填写None或者其他值(非'year','month','day'时)可以不规定格式。
3.修复了Autobar_or_line中legend大小不随labelsize的改变而改变的bug。
4.增加了一个新功能,deal_data_time中现在可以对某个时间段求最大值和最小值了,只需要把'ave'替换成'max'或者'min'即可,例如timemode填写'dayave'之前代表求日平均,填写'daymax'代表求日最大值,填写'daymin'代表求日最小值。
5.增加了一个新功能,Auto_eof函数现在可以做reof了,详情参见说明书2.5。


                               
登录/注册后可看大图


第二十九次更新:
1.增加了一个新函数,Auto_lightgbm,用于使用lightgbm模型以及对模型进行调优。详情参见2.18以及最新一期视频教程。
2.增加了绘制泰勒图的函数的说明(之前出过视频,但是代码和说明没有补充)



                               
登录/注册后可看大图


第三十次更新:
1.修复了open_data_nc中的一个bug,该bug曾经导致changeresolution功能无法使用。
2.修复了create_nc中生成的nc文件的编码问题,可以更好的适应eof函数中的reof功能(目前还在完善)。
3.增加了两个新的函数Auto_plumb和Auto_T_N用来计算plumb波通量和T_N波通量,详情见2.20和2.21以及最新一期视频教程。
4.增加一个新函数Auto_partical_r用来计算偏相关,详见2.22以及最新一期视频教程。
5.增加了open_data_nc中的一个新功能,可以通过if_change_west_east参数交换东西半球(只能作用于全球数据),详见2.1.



                               
登录/注册后可看大图


第三十一次更新:
1.增加了open_data_nc中的三个参数,iftime,iflat,iflon,使得open_data_nc不仅可以处理3维和4维数据,也可以处理二维和一维nc数据(例如eof某个模态的结果)。同时增加了open_data_nc中的一个新功能:现在可以对nc文件进行空间插值了!详情见说明书2.1
2.增加了deal_data_time中的两个参数,iflat,iflon(由于deal_data_time用于处理时间维,所以要求必须有时间维),使得deal_data_time可以处理经度维或者纬度维缺失的数据。详情见说明书2.2
3.增加了create_nc中的三个参数,iftime,iflat,iflon,使得create_nc可以生成不包含时间、纬度或者经度的数据了(但是不能够全部不包含)。详情见说明书2.9
4.增加了Autobar_or_line中的两个参数,iflat,iflon(由于Autobar_or_line中不管是滤波、去趋势⑶笙咝郧魇苹故墙卸嘞钍侥夂隙际嵌允奔湮龅模砸蟊匦胗惺奔湮沟肁utobar_or_line可以处理经度或者纬度维缺失的数据。详情见说明书2.11
5.增加了Autoshaded_quiver函数中的一个参数times,该参数用于绘制时间-纬度/时间-经度/时间-高度图,同时更改了Autoshaded_quiver中lat,lon,levels的输入方式,之前为lat为y轴数据,lon为x轴数据,levels为z轴数据;现在更改为,lat就是纬度数据,lon就是经度数据,levels就是高度数据,其具体用作于哪个轴,由picturemode决定;如picturemode为'xy'则lon用于x轴,lat用于y轴;若picturemode为'xz'则lon用于x轴,levels用于y轴。
6.增加了Auto_smooth函数中的两个参数,iflat和iflon(做时间平滑时必须有时间维),使得Auto_smooth函数可以对缺失经度或者纬度的数据做时间平滑了。详情见2.17
7.增加了selftime函数中的两个参数,iflat和iflon(自主选择时间必须有时间维),使得selftime函数可以对缺失经度或者纬度的数据进行时间选择了。详情见2.8
8.增加了data_all函数中的三个参数,iftime,iflat,iflon,使得data_all可以处理不包含时间、纬度或者经度的数据了(但是不能够全部不包含)。
9.修复了data_all的两个bug,其中一个bug是data_all不能够对时间经度纬度以及时间高度经度纬度同时求平均/距平/标准差,另外一个则是data_all选择时间时,不能够对有高度维的数据选择时间。
10.修复了open_data_nc中的一个bug,该bug曾经导致过大的nc文件无法被读取(即使选取的时间空间范围符合内存要求)。
11.更新了Auto_draw_taylor的代码(之前的代码是老旧版本的代码)
12.增加了Autoshaded_quiver函数中的一个新功能,当shadedorquiver填写'shadedandline'时可以绘制填色图等值线叠加图了(填色图变量和等值线变量不同,填色图用v,等值线用vplus),详情见2.10
13.在新版本中,95%教程1中的代码都被测试过了,目前的所有修改适用于之前的函数。
14.增加了一个新的函数,Auto_windrose可以绘制风玫瑰图,详情请见2.23和最新一期视频教程。
15.增加了一个新的函数,Auto_violin可以绘制小提琴图,详情请见2.24和最新一期视频教程。
16.open_data_nc中插值由于更换电脑失败,还在研究中!



                               
登录/注册后可看大图


第三十二次更新:1.open_data_nc的插值功能研究出来了!同时改进了插值功能的参数。
2.修复了Autoshaded_or_quiver中的一些小bug。
3.增加了一个新函数,specx_anal(并非本人所写,来自于气象家园@biubiubiu123大佬),可以用作做功率谱。详情见2.25
4.增加了一个新函数,Auto_wave,用于做小波分析(其低层函数也来自于气象家园@biubiubiu123大佬)。详情见2.26



                               
登录/注册后可看大图


第三十三次更新:
1.增加了open_hdf的一个新功能:如果hdf文件没有经纬度,可以通过iflat和iflon='create'参数创造经纬度。详情见2.3
2.改进Autoshaded_and_quiver函数,现在填色等值线和风场矢量的叠加图也可以绘制'timex','timey'和'timez'图了。
3.增加了deal_data_time的一个新功能,timemode选择'de-seasonal cycle'时可以去季节循环了。
4.修复了一个功率谱的bug,该bug曾经导致画功率谱图时坐标轴颠倒。
5.增加了一个新函数:Auto_chose_data可以用来选择指定要求的数据。详情请见2.27和最新一期视频教程。



                               
登录/注册后可看大图


第三十四次更新:1.修复了Auto_eof中reof部分的一个bug,该bug曾经导致reof算出来的方差贡献var错误。
2.增加了Autoshaded_quiver中的一个新功能,现在shadedorquiver选择scatter可以在地图上绘制散点图了。详情请见说明书2.10
3.增加了Autobar_or_line中的一个参数和功能,增加参数ifmean,代表是否绘制line图/bar图的平均线,填写'yes'代表绘制。详情请见说明书2.11

本次更新由于没有更新视频,所以简单阐述一下第二个功能如何使用。首先使用Autoshaded_quiver绘制散点图时,shadedorquiver要选择'scatter',然后变量v,vplus,v3d和v4d都是不赋值的,均填写None。times和levels无所谓,有就填,没有填写None也可以,因为用不到。lon和lat一定要注意,不再是顺序排列的经纬度数组,而是经纬度数组对,每对经纬度就是你要打点的位置,例如lat为[30,50,45],lon为[110,135,120],那么地图上就会有三个点,分别为30°N,110°E和50°N,135°E以及45°N,120°E。打点后,默认点的颜色是黑色,如果要改变点的颜色,填写shadedcolor为你想要的颜色就可以,如'r'为红色,'b'为蓝色。注意,目前scatter图只能单独绘制,后期可能会改进可以和line以及quiver图同时绘制。
绘制散点图填写参数例子如下:
QQ截图20211027215402.png
绘制效果如下:
下载.png


                               
登录/注册后可看大图

第三十五次更新:
1.增加了Autoshaded_quiver中的一个新功能,现在shadedorquiver选择track可以在地图上绘制轨迹图了。详情请见说明书2.10
2.修复了Auto_lightgbm中的一个bug,该bug曾经导致计算最优学习率时会发生错误
3.增加了Autobar_or_line中的一个功能,当line_or_bar为'bar'且selfcolor不为None时可以自定义柱状图颜色(已经更新)。
4.增加了一个新函数,Auto_blocking_high用于自动识别阻塞高压,详情请见2.28和最新一期视频教程
5.增加了一个新函数,K_means_eval用于做K-Means聚类,详情请见2.29和最新一期视频教程


                               
登录/注册后可看大图

第三十六次更新:
1.增加了一个新的函数,Auto_CNN用于构建卷积神经网络,详情请见2.30和最新一期视频教程。


                               
登录/注册后可看大图

第三十七次更新:1.增加了一个新的函数,Auto_TCN用于构建时间卷积网络,详情请见2.31和最新一期视频教程。



                               
登录/注册后可看大图

第三十八次更新:
1.增加了open_data_nc中iftime的一个新选项,'self'代表数据具有时间维但是时间维格式并非np.datetime64(可以是np.int等)
2.增加了create_nc中iftime的一个新选项,'self'代表创建数据具有时间维但是时间维格式并非np.datetime64(可以使np.int等)
3.修复了Auto_blocking_high中的一个bug,该bug曾经导致识别到的阻塞高压会有重复。
4.增加了一个新的函数,Auto_stepwise_regression用于做逐步回归。详情请见2.32
5.增加了Autobar_or_line函数中一个新的参数,valuemodel,用于控制绘图y轴范围。
6.增加了Auto_lightgbm和Auto_CNN的一个返回值,testy。
7.增加了一个新的函数,Auto_more_linregress用于做多元线性回归。详情请见2.33
8.修改Auto_mktest函数,并增加多种突变检验,现在叫做Auto_test_of_abrupt_change函数,其中包含多种突变检验方法。详情请见2.16
本期更新了视频,可以配合视频观看!


                               
登录/注册后可看大图

第三十九次更新:
1.增加了open_data_nc的一个新功能,多文件不仅可以在时间上进行拼接,在高度维上也可以进行拼接了。
2.简化了各个函数中引入的函数库,删除了各个函数中没有用到的函数库。
3.增加了突变检验函数中的两种方法的ttest_ind检验
4.增加了一个新的函数Auto_any_vertical用于绘制任意垂直截面的变量图的插值工作
5.增加了Autoshaded_quiver函数的一个新功能,可以进行地形遮罩。
本次更新对每个视频都增加了分节,而且新生成了一个视频和函数的引导文件供大家使用!



                               
登录/注册后可看大图

第四十次更新:
1.修改了open_data_nc的两行有关于iftime=='create'时的代码,此修改为bug修复,不影响使用2.增加了open_data_nc的一个新参数,timespace,用于再iftime=='create'时,手动指定时间间隔(主要是小时时间间隔)
3.创建了一个新的函数open_data_grib用于读取二进制文件
4.创建了一个新的函数Auto_gif用于生成gif图


                               
登录/注册后可看大图

第四十一次更新:
1.更新了open_data_txt_station函数,现在可以读取单个excel站点文件了;同时增加txt_mode参数。
2.修复了K_means_eval中的一个bug,该bug曾经导致使用elbow即肘部法选择的最优分类有误。
3.增加了Autobar_or_line的一个新参数valuemodel,可以指定数据区间是否对称
4.更新了open_data_txt_station、open_data_txt_grid和open_hdf中时间识别方式,与open_data_nc中时间识别方式统一
5.增加了机器学习中GBDT算法的三个子算法函数,Auto_adaboost/Auto_xgboost/Auto_catboost。
6.增加了一个新的函数,Auto_EMD用于EMD分解。
7.增加了Auto_eof在做eof时的north检验功能,并且增加eofmodel的一个新功能,当eofmodel为'all'时,代表返回所有eofnum取到的模态
8.增加了两个新函数,Auto_Liang_Kleeman_information_flow和Auto_Liang_Kleeman_relative_flow用于做信息流和归一化信息流
9.增加了DBSCAN_eval函数,用于DBSCAN聚类及聚类评估。


                               
登录/注册后可看大图

第四十二次更新:
1.增加了Autoshaded_quiver的一个新功能,该功能可以在iflabel=='yes'并且绘制风矢量时在图的右下角显示风矢量单位矢量箭头。并且改进了quiverscale的默认值以及绘制风矢量时矢量箭头的单位。
2.修复了Auto_SVD的bug,该bug可能导致交换lp和rp维度时出现错误;同时增加了一个新参数svdnum代表需要取svd的前几个模态(与eofnum一致);同时svdmodel增加了'all'选项代表取svdnum取的所有模态(不是取其中一个模态)
3.增加了open_data_txt_station的一个新参数ifrbf代表是否要做rbf插值。同时增加该函数一个新的返回值station_all代表返回站点信息。同时增加txtmode的一个新选项,'one_excel_onestation'代表读取单个excel文件存储的单个站点数据,同时之前的'one_excel'选项更名为'one_excel_morestation'代表读取单个excel文件存储的多个站点数据。
4.修复了Auto_TCN的一个bug,该bug曾经导致做TCN时,inputshape的设置是错误的。
5.增加了一个新的机器学习算法函数,Auto_RF用来做随机森林。
6.增加了5个新的机器学习算法调优函数,Auto_RandomForest_Bayesian_Optimization用于随机森林的贝叶斯优化,Auto_adaboost_Bayesian_Optimization用于adaboost的贝叶斯优化,Auto_xgboost_Bayesian_Optimization用于xgboost的贝叶斯优化,Auto_lightgbm_Bayesian_Optimization用于lightgbm的贝叶斯优化,Auto_catboost_Bayesian_Optimization用于catboost的贝叶斯优化。
7.增加了open_data_txt_station和open_data_txt_grid的一个新参数timebegin,现在这两个函数也可以像open_hdf一样,选择时间范围了。
8.修复了Auto_lightgbm,Auto_catboost,Auto_adaboost的一个bug,该bug曾经导致模型最小叶子节点样本数可能降到0导致报错。
9.修复了Auto_region_data_mask函数的一个bug,曾经由于不进行import salem而使得maskout不成功
10.增加了一个新的函数,Auto_unet用于构造unet网络,详情请见2.50和最新一期视频教程。
11.增加了机器学习函数计算贡献率的功能。



                               
登录/注册后可看大图

第四十三次更新:1.重做了Auto_draw_taylor,现在只需要调用一次Auto_draw_taylor就可以绘制出泰勒图了。而且增加了绘制泰勒图的标签的功能
2.增加了Autoshaded_quiver一个新功能,现在projection_mode选择'north_local'可以画以极地图为基准的扇形图了。
3.解决了Autoshaded_quiver中quiver key的放置问题,现在统一放置在图片右上角。
4.修复了Autoshaded_quiver中在projection_mode为'north'时绘制tangle会有明显形变的bug。
5.增加了selftime的一个新参数,ifsametime。该参数代表在闰年时若取到2月,是否要将时间向后取一天(在某些研究中使得时间同步)。
6.增加了Autobar_or_line函数中iffilter的一个新功能,现在可以做lanczos滤波了。
7.增加了Auto_lightgbm,Auto_CNN,Auto_more_linregress,Auto_xgboost,Auto_catboost,Auto_adaboost,Auto_unet,Auto_RandomForest,Auto_lightgbm_Bayesian_Optimization,Auto_xgboost_Bayesian_Optimization,Auto_catboost_Bayesian_Optimization,Auto_adaboost_Bayesian_Optimization,Auto_RandomForest_Bayesian_Optimization函数中的一个新参数,ifrandom_split用来控制对vx和vy进行train、test切分时是使用随机切分还是顺序切分。并且修复了以上部分函数的test_size不可用的bug。
8.优化了Auto_TCN中的输入参数和输出参数,现在输入参数不再是trainy,testy,trainx和testx了,而是改成vy和vx,并且给出test_size使得在函数内部对vy和vx进行顺序切分。同时增加返回值testy
9.增加了所有贝叶斯调优函数中的返回值,best_r用于返回贝叶斯调优最好结果。
10.修复了catboost中的一个bug,部分best_max_depth拼写错误。
11.增加了Autobar_or_line的一个新功能,line_or_bar为'bar'且linenum不为1时,可以绘制多个bar图。
12.增加了lightgbm自动调优函数、catboost自动调优函数、adaboost自动调优函数、xgboost自动调优函数和randomforest自动调优函数的两个新参数ifcross_validation和k_fold_num用于交叉验证


                               
登录/注册后可看大图


第四十四次更新:1.增加了Unet,CNN网络以及LightGBM和Xgboost有关函数的一个新参数,device,用于选择运行程序的设备,可选cpu或者gpu。具体gpu环境配置详见最新一期视频教程。


                               
登录/注册后可看大图


第四十五次更新:
1.修复了Auto_TCN的一个巨大bug,该bug的原因是对于TCN的原理理解错误,从而导致timestep维设置为1,现在增加了参数timestep,可以根据具体研究内容设置预测时段了
2.增加了一个新的函数Auto_LSTMorGRUorRNN用于做LSTM或者GRU或者RNN,详情见2.51和最新一期视频教程。



                               
登录/注册后可看大图

第四十六次更新:
1.增加了多元线性回归函数的新功能,现在可以输出多元线性回归模型中每个因子的贡献率了。同时增加新函数Auto_more_lassoregress,Auto_more_ridgeregress和Auto_more_gaussianprocessregressor分别用于做lasso回归,岭回归和高斯过程回归。2.增加一个新的函数Auto_SVR用于做支持向量机回归以及Auto_SVR_Bayesian_Optimization用于SVR贝叶斯调优。



                               
登录/注册后可看大图

第四十七次更新:
1.增加了几个新的函数,Auto_xgboost_chose,Auto_lightgbm_chose,Auto_adaboost_chose,Auto_catboost_chose,Auto_RandomForest_chose和Auto_CNN_chose,Auto_LSTMorGRUorRNN_chose,Auto_TCN_chose,Auto_SVR_chose用于进行机器学习的前向/后向逐步回归挑选预报因子。2.增加了两个新的函数,Auto_CNN_TCN和Auto_CNN_LSTMorGRUorRNN用于CNN与TCN或LSTM或GRU或RNN对接结合。
3.增加了Auto_CNN的一个新功能,现在可以返回heatmap用于绘制贡献图。



                               
登录/注册后可看大图

第四十八次更新:
1.增加了Autoshaded_quiver一个新功能,当ifself_vmax_vmin为'both'时,可以绘制contourf中extend为'both'的填色图,即填色图超过某个范围(由selfvmax和selfvmin设置)全部绘制成相同颜色。
2.增加了Autobar_or_line的三个新参数,ifself_vmax_vmin和selfvmax以及selfvmin,现在可以通过这三个参数,自定义bar图或者line图以及scatter图的最大值和最小值范围了。
3.为了美观填色图和柱状图,对Autoshaded_quiver和Autobar_or_line的绘图边框进行了加粗;同时设置刻度随着字体大小的同步变化功能。
4.优化了Autobar_or_line画scatter图时的颜色问题。
5.增加了Autoshaded_quiver一个新功能,现在shadedorquiver为'surface'同时picturemode为'3d'时可以绘制三维地形图了。同时增加新参数zspace用于设置z轴标记间隔。
6.优化了open_data_txt_station中的插值函数
7.增加了Autoshaded_quiver的一个新功能,现在可以自动绘制多个子图了。
8.增加了一个新的函数,Auto_imageline_to_data,用于提取图片中的折线数据。
9.增加了一个新的函数Auto_heatwave用于识别热浪



                               
登录/注册后可看大图

第四十九次更新:1.增加了三个新的函数,Auto_ngboost_chose用于ngboost挑选预报因子,Auto_ngboost_Bayesian_Optimization用于ngboost贝叶斯调优,Auto_ngboost用于使用ngboost进行回归(分类功能暂时不能使用,有bug)
2.增加了lightgbm,xgboost,adaboost,ngboost,catboost,randomforest和svr的分类功能(除了ngboost分类有bug),并且增加了新的参数task_mode用于说明任务类型以及metrics用于说明评估标准。
3.增加了CNN_TCN和CNN_LSTMorGRUorRNN的挑选预报因子的函数。
4.增加了所有跟RNN/LSTM/TCN/GRU有关网络的shuffle功能。
5.增加了所有机器学习模型的load model功能和save model功能。
6.修复了所有GBDT调优模型中的bug,该bug导致参数较小时,可能会导致模型无限循环。


                               
登录/注册后可看大图

第五十次更新:1.增加了Transformer和Resnet网络,以及Resnet_Transformer、Resnet_TCN、Resnet_LSTMorGRUorRNN、CNN_Transformer融合网络,以及这些网络对应的挑选预报因子模型。



                               
登录/注册后可看大图

第五十一次更新:
1.将所有函数分开,现在教程1是一个文件夹集合。
2.增加了有关NLP模型的多输出模型



                               
登录/注册后可看大图

第五十二次更新:
1.补充皮尔森相关系数自由度计算程序。
2.补充REOF的north检验程序。更新SVD、EOF和REOF函数。
3.补充深度学习有关模型的weight计算部分。
4.修复了Autobar_or_line多项式拟合中的一个bug和去趋势还有巴特沃斯滤波的bug。
5.增加了骤旱识别程序。


                               
登录/注册后可看大图

第五十三次更新:
1.修复了骤旱识别的bug,三维骤旱识别中缺少i=0,以及计算百分位的bug。
2.现在eof和svd可以做垂直剖面了,同时修复了SVD程序的蒙特卡洛检验和north检验。
3.增加了深度学习函数中回归任务的相关系数损失函数和评估标准。
4.增加了有关CNN和Resnet的多尺度统筹函数。
5.修复了深度学习ifweight功能中的计算bug。

注意:深度学习中Loss_Function的选择很重要,不同的Loss_Function得到的最终结果可能相差50%!(使用相关系数作为最后评估标准时,上图使用(1-r)^1.5作为loss和metrics,而下图使用rmse作为loss和metrics,最终结果相差0.3)
QQ截图20230524124643.png



                               
登录/注册后可看大图

第五十四次更新:1.修复了所有深度学习多输出模型的bug,该bug曾经导致深度学习多输出训练所用模型和测试所用模型不同(测试准确率/相关系数明显低于训练)
2.增加了一个深度学习降尺度网路


                               
登录/注册后可看大图

第五十五次更新:1.增加了三源匹配(Triple collocation)函数2.增加了SOM函数
3.增加了TSNE函数

                               
登录/注册后可看大图

第五十六次更新:
1.增加了台风探测,追踪,匹配算法代码


                               
登录/注册后可看大图

第五十七次更新:
1.修复了Auto_IBTrACS_read中的一个bug,在number数组dtype类型当中,应该使用int32,否则将会出现number数组均为负数的情况。
2.修复了Auto_TC_compare中的一个bug,该bug将导致pod计算错误。
3.修复了Auto_UZ_track中的一个bug,该bug曾经导致计算出的两个台风候选点之间时间间隔错误。
4.增加了SRGAN的一个参数,现在可以使用loss_function参数选择生成器的损失函数了。
5.增加了一个新的函数ESRGAN用于ESRGAN对抗生成网络的构建。

再次强调深度学习Loss_function的重要性,对于超分辨率(深度学习降尺度)来说,loss_function的选择不同能让结果天差地别!



                               
登录/注册后可看大图

第五十八次更新:
1.修复了open_data_nc的一个bug,该bug曾经导致使用changeresolution参数将会造成程序卡死。
2.由于lightgbm的改版,故改变了verbose参数的出现位置。同时增加了机器学习函数新的metrics
3.增加了ANN网络和ANN挑选预报因子函数
4..增加了EfficientTempNet网络,用于做时间超分辨率。


                               
登录/注册后可看大图

第五十九次更新:
1.更新了所有深度学习模型一个新的计算预报因子贡献率的方法,shap(除了Transformer有关模型和more_output模型以及Unet模型除外);以及更新了所有有关于CNN和Resnet模型计算heatmap的方法(除了Transformer有关模型和more_output模型以及Unet模型除外),也是使用shap。
2.将所有深度学习模型改进为允许多预测,并且改善了more_output模型的一个bug,即删除Embedding 模块。
3.将所有函数中的np.int,np.float和np.str改成int,float,str,因为numpy新版本中这些函数都已经删除。
4.增加了一个新的深度学习函数,Auto_GCN用于做图神经网络。


                               
登录/注册后可看大图

第六十次更新:
1.更新了一个新的函数,Auto_CNN_pytorch,使用Pytorch库包进行卷积神经网络构建。


                               
登录/注册后可看大图

因哔哩哔哩各位同学要求,目前已经把所有教学视频打包到百度网盘,同时把自己写的大论文和小论文也打包到了百度网盘!

以下是气象自动绘图函数连接:

链接:https://pan.baidu.com/s/19y8cxGsT1HwIZtd7JBw3wQ?pwd=tbyc
提取码:tbyc

以下是python基础课程连接:
链接:https://pan.baidu.com/s/1sWzl6ADSBcK33e5dP5Ktag
提取码:tbyc

以下是wrf教程(成信大张少波老师的教程,感谢张老师的杰出贡献):
链接:https://pan.baidu.com/s/1fFlNeVQ-Uv13LAMdrmTAZw
提取码:tbyc

























































































评分

参与人数 11金钱 +125 贡献 +5 收起 理由
Swallow + 20 赞一个!
urnotcotton + 24 + 5 赞一个!
Sherry_小白 + 5 很给力!
求求你别卷了 + 2
dengErica + 2 很给力!
zhuyidong + 10 很给力!
西红柿毛毛雨 + 10 很给力!
WYN20 + 5 很给力!
oydl1985 + 16 很给力!
movlan + 20 很给力!
little卓忘密码 + 11 赞一个!

查看全部评分

本帖被以下淘专辑推荐:

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

新浪微博达人勋

 楼主| 发表于 2020-11-19 11:11:12 来自手机 | 显示全部楼层
QCD 发表于 2020-11-19 08:35
你这个地图很危险啊

主要是外国的地图。。。的确不能用于发文章的。。。要不然会政治错误
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 1

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-20 13:32:14 | 显示全部楼层
目前自动绘图函数现阶段视频教程已经完结了,欢迎大家收看!
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-11-19 11:10:41 来自手机 | 显示全部楼层
dongyi 发表于 2020-11-19 08:03
我的需求还不一样,请问有明日科技的代码和PPT之类吗,先前看过视频,感觉不错,哈哈哈

一会我分享一下
密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

新浪微博达人勋

发表于 2020-11-19 08:35:30 | 显示全部楼层
你这个地图很危险啊
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2020-11-19 08:03:06 | 显示全部楼层
我的需求还不一样,请问有明日科技的代码和PPT之类吗,先前看过视频,感觉不错,哈哈哈
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-11-18 21:25:01 来自手机 | 显示全部楼层
werewolf 发表于 2020-11-18 19:32
shapefile哪里下载的

大部分都是在CSDN下载的
密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

新浪微博达人勋

发表于 2020-11-18 18:37:51 | 显示全部楼层
本帖最后由 贝壳女孩 于 2020-11-18 18:39 编辑

感谢大佬分享哈哈哈
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-11-18 21:13:50 | 显示全部楼层
werewolf 发表于 2020-11-18 19:32
shapefile哪里下载的

shapefile 找的shp文件,有几个我一会分享一下吧
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2020-11-18 19:32:18 | 显示全部楼层
shapefile哪里下载的
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2020-11-18 18:29:44 | 显示全部楼层
cool
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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