最近公司提了个需求 ,说公司的旧系统的报表导出的时候,数据量超过一万就导不出来了。经过分析,是旧系统做了限制。...在更新的时候,查看了导出时虚拟机GC情况,发现原先程序执行时,内存激增,经过Google决定采用流式读取对sql进行优化。...JDBC三种读取方式: 1、 一次全部(默认):一次获取全部; 2、 流式:多次获取,一次一行; 3、 游标:多次获取,一次多行; mybatis默认采取第一种。...开发环境: jdk1.8 、intellij IDEA 2018 mybatis 3 、 springMVC 、Spring 4 实现步骤: 实现流式读取的方式不止一种,但是我只能说我解决的这种,对不起...list.add(resultContext.getResultObject()); } }); return list; } dao层:(重点) /** * 流式读取数据
本文链接:https://blog.csdn.net/qq_37933685/article/details/85100239 title: MyBatis 流式读取MySQL大量数据 date:...由于生成报表逻辑要从数据库读取大量数据并在内存中加工处理后再生成Excel返回给客户端。...文章目录 MyBatis 流式读取MySQL大量数据 背景: 开发环境: 实现步骤: 示例代码 心路历程 MyBatis 流式读取MySQL大量数据 背景: 最近公司提了个需求,说公司的旧系统的报表导出的时候...,数据量超过一万就导不出来了。...list.add(resultContext.getResultObject()); } }); return list; } dao层:(重点) /** * 流式读取数据
NetCDF有两个数据模型:经典模型(NetCDF3之前模型)和增强模型(NetCDF4) NetCDF最新版本是NetCDF4,NetCDF4的API接口建立在HDF5之上,和HDF5是兼容的....GDAL读取实例 下面的例子读取MODIS地标反射率(Surface Reflectance)数据中的第一波段,然后转为GeoTIFF进行存储....对于MODIS数据,tuple的第一个元素是子数据集的完整路径,所以我们取出该路径,然后使用gdal.Open()函数读取该子数据集....最后我们使用CreateCopy()方法将该子数据集存储为GeoTIFF格式的数据。 所以,总结一下,我们读取HDF或者NetCDF数据子集的时候,最主要的是取出想要处理的子数据集的完整路径。...然后就像读取普通GeoTIFF影像那样对子数据集进行读取就OK了. from osgeo import gdal root_ds = gdal.Open('example.hdf') # 返回结果是一个
想如今气象数据netCDF(.nc)为盛,用者甚多,初学者见之仰天长啸,倘若再由Python经手,netCDF4-python,Iris,xarray,UV-CDAT选择众多,劳心伤神事小,逼出选择困难症事大...数据结构图示 数据类型的使用 读取数据: xarray.open_dataset()读取Dataset类型数据,即能读取多个物理量。...xarray.open_dataarray()读取DataArray类型数据,即只能读取单个物理量。...提取物理量 从文件中读取数据ds = xarray.open_dataset() 假如数据中含有一个名为var的物理量可以通过ds.var或ds[var]来获取 实例 此处使用的是ERA-Interim...>>>import xarray as xr # 由于数据包含了多个物理量(u10,v10,t2m),所以要用open_dataset来读取数据 >>>ds = xr.open_dataset('EC-Interim_monthly
很多工具都可以处理NetCDF文件,比如MATLAB,Python,NCL,GrADS,CDO,NCO,Panoply等等。...这里主要讲一下如何利用MATLAB,Python,NCL处理NetCDF文件。...["SST"] osgeo.gdal 模块 具体的应用见这里 Basemap系列教程:读取WRF模式数据 # 加载模块 from osgeo import gdal # 读取方式略有不同 # 'NETCDF...读取数据之后,在变量空间可以查看关于变量的一些信息,比如维度大小。...NCL ncl处理netcdf文件的方法同样非常简单,这里仅简单介绍一下: data = addfile("wrfout_v2_Lambert.nc", "r") lon = data->XLONG
以下文章来源于MeteoAI ,作者学前班大队长 想如今气象数据netCDF(.nc)为盛,用者甚多,初学者见之仰天长啸,倘若再由Python经手,netCDF4-python,Iris,xarray...,比如变量的名字、单位等 数据结构图示 数据类型的使用 读取数据: xarray.open_dataset()读取Dataset类型数据,即能读取多个物理量。...xarray.open_dataarray()读取DataArray类型数据,即只能读取单个物理量。...提取物理量 从文件中读取数据ds = xarray.open_dataset() 假如数据中含有一个名为var的物理量可以通过ds.var或ds[var]来获取 实例 此处使用的是ERA-Interim...>>>import xarray as xr # 由于数据包含了多个物理量(u10,v10,t2m),所以要用open_dataset来读取数据 >>>ds = xr.open_dataset('EC-Interim_monthly
本文介绍基于C++语言的netCDF库读取.nc格式的栅格文件时,出现数据无法读取、数据读取错误、无法依据维度提取变量等情况的原因与解决方法。 ...最近,由于需要读取ERA5气象数据,因此使用C++语言中的netCDF库读取.nc格式文件;这其中也是踩了很多的坑,所以在此记录一下,也相当于是汇总了C++的netCDF库读取.nc文件时的一些常见问题...但当然,本文后续提到的各类问题,都是在基于C++语言的netCDF库读取.nc格式文件时,出现的问题(毕竟Python读取.nc格式文件还是很方便的,感觉一般也不会有太大的问题或坑)。...2 数据增益值与偏移值 首先,如果大家读取数据时,发现得到的结果数值很奇怪、不符合数据范围的实际情况,那么大概率就是.nc文件的变量存在scale和offset(增益值、偏移值)导致的;关于这一点,...例如,我们一般情况下,都是通过如下代码,打开.nc格式文件,并读取其中的变量数据。
NCAR将使用Python作为地球科学领域的主要数据处理和可视化工具。 NCAR对NCL进行了“封装”,构成了PyNGL和PyNIO,随后可能还会开发一款工具,囊括NCL中大多数函数。...数据处理 •NetCDF格式 : netCDF4-python,h5py,h5netcdf,xarray等。...•二进制:numpy可以处理二进制数据,同时借助python内置struct模块可以非常方便的处理二进制格式数据。 上述介绍的一些库,很多仅支持简单的数据读取和写入操作,不支持更多计算操作。...模块提供了大量插值函数•python-geotiepoints:针对地理网格数据的空间插值 说到地球科学领域的数据处理,最离不开的应该也是模式输出数据了。...数据处理完成之后,当然是要进一步进行分析,python中提供了相当多的分析工具,以下仅列出一小部分: 数据分析 •EOFS:Python EOF分析库•statsmodels:Python统计分析库,提供了大量的统计分析函数
1.使用NCL的方案: short2flt Converts values of type short to values of type float using the "scale" and "offset...链接: https://www.ncl.ucar.edu/Document/Functions/Contributed/short2flt.shtml 2.使用Python的方案: 使用python的netCDF4...读取数据,发现数据集存在scale_factor和add_offset,但是我读取的数据应该是Unpacking data,也就是转换后的实际数据,不需要再处理,因为数据压缩是通过偏移和缩放之后将浮点数转化为整数...,为了验证正确性,我通过下列代码验证: from netCDF4 import Dataset filename = r'geopotential.nc' data = Dataset(filename...print(compute_scale_and_offset(np.array(data['z'][:]).min(),np.array(data['z'][:]).max(),16)) #得到的结果和我读取的
既然模拟了,那么就会有数据输出,想要检验模拟效果如何,就要对模拟数据进行处理。这就是所谓的后处理过程,也就是对模拟结果的处理,提取想要的数据,并进行分析及可视化的过程。...在地学系统中,尤其是大气科学领域,对WRF模式后处理主要使用的是GrADS和NCL,而GrADS同FORTRAN一样,属于历史悠久系列产品之一。...而NCL是由NCAR开发的脚本语言,近些年来用户颇多,其主要应用与地学领域,其中包含了大量的气象相关脚本,很多气象要素的计算函数,以及气象常用图形的绘制函数,官网也给出了大量的示例,在气象领域中应用广泛...既然涉及气象领域,那么自然就少不了对WRF模式的支持,NCL中有一个脚本库,专门应用于WRF模式的后处理[注1]。...: # “ ” 内为变量名,变量名之后为要读取的数据部分,通过索引设置 dbz = data.variables["COMPOSITE_REFL_10CM"][ti[i],xs:xe,ys:ye]
通常所说的regridding/remaping/interpolation都是将不同网格的数据映射到新的网格。...rectilinear网格数据是最常见的,比如WRF模式中的lat-lon投影对应的则是此网格类型; ?...ESMF,主要包括如下步骤: 生成原网格数据 生成目标网格数据 创建包含上述两种网格数据的nc文件 创建包含映射权重的nc文件 应用权重到原网格数据,映射生成目标网格数据 复制原文件元属性到映射后到数据...;-- delete netCDF file if it exist cdf_file = addfile(ofile,"c") ;-- create a new netCDF file delete_VarAtts...->lat = (/dst_lat/) ;-- write lat to new netCDF file fout->lon = (/dst_lon/) ;-- write lon to new netCDF
NCL to Python NCL的功能在python中转为了PyNIO和PyNGL这两个库: 1.PyNIO使用了NetCDF的接口用来读写各种类型的数据,包括NetCDF、GRIB、HDF等。...PyNGL的参数设置跟NCL绘图的指令很像,但确实还是有一些区别。最主要的问题就是PyNGL对数据的适配不如NCL中gsn_csm命令好。...比如在NCL中只要原数据信息完整,当使用gsn_csm_contour_map命令画图时,可以自动识别数据经纬度信息,会自动填充左上角的变量名和右上角的单位。...那么方便,其实PyNIO在数据处理和绘图方面暂时也没有NCL那么强大,像一些求年平均、季节平均之类的函数还没有,一些炫酷的图还没法快速简洁的画出来。...但是这其中会涉及到大量的工作,具体什么时候能实现呢,我也不知道。
可移植性:或称跨平台性,即在一种操作系统上创建的 netCDF 文件通常可被其他操作系统上的软件读取。 可扩展性:即可有效地读取一个大 netCDF 文件的一个小子集,而无需读取整个文件。...复杂的数据处理工作和二维可视化可以使用matlab,python或NCL,三维可视化可以使用VisAD,Vis5d,IDV等。 处理nc文件的工具很多,此次仅利用python来讲一下如何处理nc文件。...目前Python中最受欢迎的处理NetCDF数据的库是netCDF4-python。此外,scipy.io模块也提供了NetCDF文件接口,可以用来读取NetCDF文件。...:读取netcdf格式文件 其余代码段的解释在上述代码中已经给出,文末也给出了Notebook和数据链接,Notebook中有更多更详细的代码和解释。...Notebook中也给出了使用 scipy 读取 netcdf 文件的示例。 ? 图1 无数据循环 ?
大气科学涉及气象学、气候学、空气质量等,通常会处理大量的时空数据,比如气象观测、卫星数据、模式输出等。这些数据通常是多维的,比如温度、压强、风速等变量在不同时间和空间上的分布。...常见的语言有Python、Fortran、R、MATLAB、Julia、C/C++、NCL、IDL等。用户可能想知道哪种语言最适合处理大气数据的分析、可视化和模式开发。...Python:通用首选 优势: 生态系统强大:xarray(处理NetCDF/HDF数据)、MetPy(气象专用工具)、Cartopy(地图可视化)、Dask(并行计算)等库几乎成为行业标准。...典型场景:数据后处理、可视化、机器学习(如极端天气预测)、中小规模数值模拟。 案例:欧洲中期天气预报中心(ECMWF)的ecCodes库支持Python,NCAR推荐使用Python替代NCL。...历史积累:大量遗留代码库(如GFDL的FMS)需要维护和优化。 劣势:语法老旧,缺乏现代开发工具,不适合数据处理或机器学习。 典型场景:大气模式开发、超级计算机上的大规模并行计算。 3.
同时从“wrfout中提取变量,然后用08:10的风向wdir【ncl函数wind_direction(u,v,0)】减去08:00时刻的风向, 做上循环语句do,就会出现差一个数值对不上的情况。...笔者对ncl不太熟悉。但是以上功能实现Python不需要循环。因为wrfout的变量是xarray格式,想必大家知道要用哪个函数了。 没错,就是xarray.diff() 废话半天了,开始写代码吧。...导入库与读取变量 In [2]: # 导入数据读取模块 import numpy as np import pandas as pd from netCDF4 import Dataset import...In [3]: import os import numpy as np import matplotlib.pyplot as plt from netCDF4 import Dataset from
就在目前来看,python在机器学习领域、自动化办公、数据分析等多个领域均有涉及,而不像NCL等语言可能略显专业。...Python下面包含的库有很多,比如numpy和pandas库,基本能够满足大部分人的数据处理需求,除此以外,针对我们气象领域常用的.nc格式的数据,也有专门的xarray库相对应,处理起来十分方便。...03 — 最后,Python目前虽然已经比较成熟了,但仍处在不断发展完善之中,而我们知道,NCL语言早在几年之前就已经停止更新了,也转向了发展Python。...还是拿NCL来举列子,NCL的功能在python中转为了PyNIO和PyNGL这两个库,其中PyNIO就使用了NetCDF的接口用来读写各种类型的数据,包括NetCDF、GRIB、HDF等,而PyNGL...是一个可视化的库,里面的参数设置和NCL中的很相似。
脚本主要内容: NetCDF数据读取 计算和存储 等值线、矢量箭头、图层叠加 脚本略有缺失,完整脚本请购买施宁教授出的《NCL数据处理与绘图实习手册》纸质书籍。版权归施宁教授所有。.../gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" load "$NCARG_ROOT/lib/ncarg...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; sst time = f_sst->time ; 读取其日期...;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 0表示仅用非缺省的数值进行计算 ;1 表示标准化时除以的是[N] ; 而0表示除以[N-1] ;; 输出至netcdf...ENSO-index.nc" system("rm -f "+ path_out) ; 若当前路径下有同名文件,则删除 ncdf = addfile(path_out,"c") ; "c" 表示创建 netCDF
在实际工程中,经常会遇到要一起读取众多小文件的办法。本来正常情况下是进行文件夹的遍历。 幸运的是,spark原生是支持这种功能的。它可以批量地读取众多的文件,也可以按照一定的方式进行过滤。...通过这种方式,可以直接实现对众多小文件的快速读取。(而且还是多核并行的方式),比起传统的多线程操作,还是快多了。
NCL-Chinamap GitHub项目地址: https://github.com/huangynj/NCL-Chinamap 本地图数据作者保留著作权和最终解释权,本数据可用于教育,科研等非商业用途...中文致谢:感谢中国科学院大气物理研究所黄永杰博士提供的包含正确中国国界 和行政区划的地图数据(https://github.com/huangynj/NCL-Chinamap.git)。...method=result100W ),对原NCL的中国地图数据进行修正,从而能够绘制正确的国界、中国台湾岛屿、南海诸岛及省界等。...下载完成后可以直接运行提供的例子脚本进行测试: ncl plot_with_correct_Chinamap.ncl 使用修正的地图数据关键属性是: res@mpDataSetName...cnmap_NetCDF/rivers.nc; 2020-04-23:将仓库迁到 GitHub。
为了帮助大家从NCL迁移到Python,开发者也是想尽了办法啊,最近有发起了新的项目-GeoCAT Examples[1],提供了很多的与NCL网站示例脚本对应的Python脚本,旨在帮助大家从NCL逐步迁移到...在提供了的很多Python绘图示例脚本中,目前尚存在不足的是NCL中curly vector图的绘制。如下图所示: ? 左为Python绘制,右为NCL绘制. 左图为截图....可见,matplotlib所绘制的quiver图,矢量箭头没有NCL的流线型,但这个问题后面可能会通过matplotlib上游贡献解决。 其余的图python基本都能够很容易的实现。...conda-forge -c ncar -n geocat-examples python=3 geocat-comp geocat-datafiles geocat-viz=2020.2.18.1 netcdf4...左为Python,右为NCL绘制 附: 官方提供的图片大小不一致,为了将Python和NCL的图片进行拼接,本文处理图片用到了ImageMagic的两个命令: •identify:获取图片的尺寸信息•convert