原文作者:小柒 原文链接:https://blog.52itstyle.vip/archives/91/ 今天看了论坛的动态,有人说数据库使用外键会导致心脏不好,然后特意百度一一下,特此记录。...eg:数据库和应用是一对多的关系,A应用会维护他那部分数据的完整性,系统一变大时,增加了B应用,A和B两个应用也许是不同的开发团队来做的。...反方观点: 1,可以用触发器或应用程序保证数据的完整性 2,过分强调或者说使用主键/外键会平添开发难度,导致表过多等问题 3,不用外键时数据管理简单,操作方便,性能高(导入导出等操作,在insert...结论: 1,在大型系统中(性能要求不高,安全要求高),使用外键;在大型系统中(性能要求高,安全自己控制),不用外键;小系统随便,最好用外键。...2,用外键要适当,不能过分追求 3,不用外键而用程序控制数据一致性和完整性时,应该写一层来保证,然后个个应用通过这个层来访问数据库。
问题 最近在项目中遇到一个很神奇的问题,MySQL 使用 order by 进行排序并进行分页的时候,会出现部分数据丢失和重复。具体看下面这三张图 ? 图一 ? 图二 ?...而 order by 的 sort 字段没有使用索引(正常情况下,排序的字段也不会使用索引),如果使用了索引,则会进行索引排序。 因此可以得出,上面的图二和图三的 SQL 语句使用了堆排序。...因为 sort 字段没有索引,所以没走索引排序;并且使用了 limit。导致最终使用了堆排序。 如果了解算法的你,应该知道堆排序是不稳定的。...从 MySQL 5.6 版本开始,优化器在使用 order by limit 时,做了上面的优化,导致排序字段没有使用索引时,使用堆排序。 问题解决 通过上面的分析,有两种解决方案可以解决此问题。...总结 如果查询数据进行排序和分页时,如果排序字段没有使用索引,一定要添加一个有索引的字段,比如主键 ID,保证顺序稳定。否则,查询的数据会导致数据丢失和重复。
conda-forge 包安装 延迟和高效读取数据,节省内存占用和磁盘访问 允许使用 dask 进行大于内存的分布式处理 支持将坐标转换为不同的数据模型和命名约定 支持将 GRIB 文件的索引写入磁盘,.../2021031000/ORIG/gmf.gra.2021031000024.grb2') 下面代码展示使用 xr.open_dataset 直接读取 GRIB 2 文件会抛出异常。...Beijing , ... ] 文件访问 cfgrib 存储从 GRIB 2 文件中筛选的要素场的元数据和索引信息,包括文件路径,消息起始偏移量。...例如下面的代码使用 t.load() 将所有场的值加载到内存中,后续在 print() 语句中的数据访问操作就不会读取文件。...dask 处理大于内存的数据集 使用 dask.distributed 进行分布式处理 后续会研究如何使用这些特性。
xarray.open_mfdataset 对于大内存的文件,需要搭配dask使用 读取任意grib 的keys >>> ds = xr.open_dataset('era5-levels-members.grib...下面主要介绍第二种方式,使用pygrib读取grib文件 pygrib使用 首先介绍一些基本的命令 pygrib提供了两种读取grib文件的命令(仅我所了解),分别是: 1pygrib.open() data...,会依次读取下面的20条数据 使用循环查看文件信息: for grb in data[1:16]: print(grb) 1:Geopotential:m**2 s**-2 (instant)...将数据写入新的grib文件!有用!...grib文件 pygrib写grib文件的优势在于,写出的grib文件,基本上会保留原始grib文件中的信息,基本的Attributes等也不需要自己编辑,会直接将原始文件中的信息写入 替换的大致思路如下
从 GDS 加载数据 在加载本地数据文件前,首先使用 Meteva 内置的函数从 GDS 服务中获取要素场,用于后续对比验证。...GDS 服务的相关配置方法请访问同样由 nmcdev 开源的 nmcdev/nmc_met_io 项目。 Meteva 支持 nmc_met_io 项目的配置文件。...读取本地 GRIB 2 数据 载入 文件路径 file_path = find_local_file( "grapes_gfs_gmf/grib2/orig", start_time="...说明本地读取的 GRIB 2 文件可以代替 GDS 中的数据。...计算 计算 024 时效与该时刻分析场的均方根误差 载入数据 整合函数,实现如下功能: 使用 nwpc-data 从 GRIB 2 文件中加载要素场 将返回的要素场转换为 xr.DataArray 对象
上次我们说到了如何使用Python处理NetCDF格式文件,这次我们说一下如何使用python处理grib格式数据。 Grib格式是一种应用于气象领域的简明数据格式,由世界气象组织进行标准化。...通常用来存储历史气象数据。当前有3个版本的grib格式,版本0已经不再使用,版本1仍在广泛使用,主要用于存储数值天气输出结果。版本2的变化较小,目前也已经得到应用。...此外还有专门用于处理grib格式的命令行工具,比如wgrib,wgrib2分别用于读取grib和grib2格式。跨平台工具zyGrib可用于grib数据的可视化。还有NCL,MeteoInfo等等。...此次仅介绍如何使用Python处理grib格式数据,关于其他工具或编程语言的应用以后可能会单独讲解。...如果未进行第三方源配置,可使用如下方式安装 conda install -c conda-forge pygrib 安装完成之后即可进行grib数据处理 数据读取 首先导入库 import pygrib
GRIB格式的特点包括: 高效的存储方式:由于其使用了高效的压缩技术,GRIB能够在较小的空间内存储大量的数据,这使得它在处理大规模气象数据时非常有用 。...然而,GRIB格式也存在一些读取上的困难: 非直接可读性:GRIB文件是二进制格式的,无法直接以文本形式阅读。这意味着用户需要使用专门的软件或库来解码和编码这些文件 。...技术过时问题:例如,GRIB API曾在2020年6月30日被ecCodes取代,这可能影响到使用旧版本API进行数据处理的能力 。...GRIB格式因其高效的数据存储和处理能力,在气象领域得到了广泛应用。然而,其非直接可读性和对特定软件或库的依赖使得从GRIB文件中提取数据可能会遇到一些问题 那么我们怎么解决这个问题?...其实不必拘泥于使用Python读取,毕竟grib相关的库在win系统下面非常难装, 今天示范一下怎么用cdo软件转换格式再使用Python读取 cdo -f nc copy /home/mw/input
在进行数据处理和分析的过程中或是基于其他原因,为了方便进一步的处理,有时需要将NetCDF数据格式转换为GRIB数据格式。...通常情况下,执行上述转换命令时可能会碰到以下提示: Warning (cdfSetVar) : Inconsistent variable definition for XLAT_U!...如果输入文件不包含网格信息,可以使用setgrid操作符设置网格描述信息,然后再执行转换操作。当然,NCO中也有命令可以完成网格信息添加。比如: ncatted。...注意: 编译CDO时,要使用--with*选项指定要支持的操作,比如支持NetCDF,GRIB数据格式,需要指定 --with-netcdf, --with-grib_api 选项。...的功能,但是在使用老版本的CDO时,对于初学者来说仍建议使用grib_api。
简化访问 多年来,ECMWF 一直在其关键软件包中提供 Python 接口,用于访问,处理和可视化气象数据。...这项工作将以哥白尼 气候数据存储 (Climate Data Store, CDS) 工具箱 的经验为基础,该工具箱已使用户无需下载任何数据即可访问所有哥白尼气候数据集。...上述软件基本采用同样的策略处理数据与算法,即: 具体算法仅面向软件定义的 中间数据结构 开发,提供数据接口将原始数据转换为中间数据 而中间数据往往使用 Python 生态中常见的数据结构库,这样会非常方便进行扩展...笔者利用 Meteva 提供的接口已实现载入 GRIB 2 数据和观测文本数据,详情参见以下文章: 《Meteva笔记:加载GRIB 2要素场》 《Meteva笔记:加载本地观测数据》 以上工具包对于笔者正在开发的...笔者开发的 nwpc-data 库目前只支持从本地 GRIB 2 文件中加载数据,未来可以考虑支持更多格式数据,支持更多的数据源。
通常low resolution仅作为测试和教学使用,对于其他目的应用,应使用full-resolution数据集。 除了默认的地理数据集,geogrid也能将大部分连续和类别变量插值到模拟域。...GRIB格式文件中包含了时间变化的气象场,通常这些数据来源于其他全球/区域数值模式,比如NCEP NAM和GFS。ungrib可以处理GRIB 1和GRIB 2格式文件。...处理GRIB 2格式文件需要编译WPS时使用GRIB2选项。 通常情况下,GRIB文件中包含的变量比初始化WRF模式所需要的变量要多。两种格式的文件都使用了大量编码识别GRIB文件中的变量和层。...SI : WRF系统的旧中间数据格式。 MM5 : 用于为MM5模式提供GRIB 2格式输入。 上述三种格式均可用于驱动WRF模式,但推荐使用WPS格式。...g1print.exe 输出GRIB1格式文件中的数据日期、气象场量以及垂直层等信息。 g2print.exe 输出GRIB2格式中数据的日期、气象场量以及垂直层等信息。
相信我,选择meteva库绝对能让你在气象数据处理的世界里燃起激情的火焰!Let's go,一起点燃数据的热情吧! 当新手开始使用meteva库时,可能会遇到一些常见的问题。...下面我分为几个方面: 数据读取 如何读取micaps,nc,grib格式的气象数据?...案例:1.1 站点数据读取:以micaps3类数据为例 1.3 格点数据读取:以era5的nc数据为例 1.7 grib 数据处理简单流程:使用era5 girb格式为例 数据操纵 如何进行气象数据的插值操作...案例 :2.1 测试wrfout可视化:使用xesmf重插值后使用meteva可视化wrfout数据 案例 :2.2 nc网格数据插值站点三步走:meteva读取nc数据并插值到气象站点 数据可视化 如何绘制站点数据图...1.7 grib 数据处理简单流程:使用era5 girb格式为例可视化降水数据 In [19]: #打印一个era5的grib数据看看数据结构 import meteva.base as meb meb.print_grib_file_info
温湿廓线 Siphon是一个用于访问大气和海洋数据源的Python库。它提供了易于使用的工具,可以从THREDDS数据服务器中自动获取、解析和检索数据。...Siphon库旨在使使用Python进行科学数据分析变得更加容易。...数据访问:Siphon通过使用NetCDF Subset Service (NCSS)和NetCDF OPeNDAP (DODS)协议从数据服务器中获取数据。...Siphon库广泛应用于气象和海洋学领域,以及其他需要使用大量科学数据的领域。它简化了数据获取和处理的过程,使得用户可以更高效地进行科学研究和分析。...dataset=grib/NCEP/GFS/Global_0p5deg/Best') print(best_gfs.datasets) ['Best GFS Half Degree Forecast Time
站点数据格式 在 Meteva 中,使用 pandas.DataFrame 对象表示站点数据,类似 Excel 表格。...验证 对比从 GDS 上检索的数据和本地观测数据 筛选 按照 GDS 数据的站点号过滤 gts_data 使用 pd.merge() 函数合并两个 DataFrame,使用 inner 合并,仅保留两个数据中都有的站点观测...根据合并规则,相同的列名会默认添加 _x 和 _y 后缀。...载入格点数据 已在前一篇文章《Meteva笔记:加载GRIB 2要素场》中介绍。...使用 mpd.score 函数为表格数据计算 RMSE。
该产品来自全球数据同化系统(GDAS),该系统持续收集来自全球电信系统(GTS)和其他来源的观测数据,用于许多分析。...FNL是用NCEP在全球预报系统(GFS)中使用的相同模型制作的,但FNL是在GFS初始化后约一小时左右准备的。FNL被延迟,以便可以使用更多的观测数据。...GFS运行较早,以支持时间关键型预测需求,并使用前6小时周期的FNL作为其初始化的一部分。...存档时间序列会持续扩展到接近当前的日期。它不是实时维护的 以上为官网机翻。 总之fnl数据是我们能接触到的较好的气象分析数据之一。也可以用作WRF运行的初始场。...end_date: for hour in ['00', '06', '12', '18']: file_url = f'https://data.rda.ucar.edu/ds083.2/grib2
同样,在公众号中回复“worldwind”,会提供该网站的源码Demo。 如上是该网站的一个动图效果,有兴趣的可以访问网站了解一个大概。...+浪高等,Control为时间轴控件,比如历史数据。...点击查看不同的数据效果,不难找到对应数据的url的规范。 气象数据采用的是epak格式,二进制流,代码中提供了数据规范。...如下是数据规范和对应的JSON属性: 从converter属性,该数据来自netcdf,而这个格式在之前的Berkeley Earth中也提到过,而原始数据是grib形式,以我的理解,里面应该有一个grib2netcdf2epak...下一篇会抛开技术,从产品,数据,以及可视化效果等非技术层面上,和大家分享一下我对这三个网站的对比和想法。
之前说了如何利用CDO查看数据集信息 使用CDO查看气象数据信息。这一次说一下利用CDO从数据集中提取数据。这部分是非常使用的,尤其是当涉及到大数据集的时候,其优势就变得非常明显了。...比如常用的操作符: selname/delname 根据变量名选择/删除数据,可指定多个变量名,用逗号隔开即可 sellevel 选择指定层的数据,可指定压力层 GRIB参数多字段选择 selmulti..., SCALE=0.01 SELECT, PARAMETER=11, LEVTYPE=105, LEVEL=2, OFFSET=273.15 注意:如果定义了SCALE和OFFSET的话,文件中数据会进行换算...选择单元格及重采样 选择单元格的操作并不经常使用,主要是使用selgridcell和delgridcell操作符,而且通过单元格索引进行数据集操作。...默认的参数值为2,即网格精度会变为原来的一半。
运行数据集的时候算法崩溃了,怎么办怎么处理内存不足导致的错误? 本文将讨论一些常用的解决办法,供大家参考。 处理大型 ML 数据文件的七种思路 1....转换数据格式 你是否把数据存为原始的 ASCII 文本,比如 CSV 文件? 或许,使用其它格式能加速数据载入并且降低内存占用。好的选择包括像 GRIB、NetCDF、HDF 这样的二进制格式。...这可能需要算法使用优化技术迭代学习,比如使用随机梯度下降。那些需要内存里有所有数据、以进行矩阵运算的算法,比如某些对线性回归和逻辑回归的实现,就不适用了。...使用关系数据库(Relational database) 关系数据库为存储、访问大型数据集提供了标准化的方法。...使用大数据平台 有的情况下,你可能必须要使用大数据平台,即为处理超大型数据集而开发的平台。它们能让你进行数据转换,并在其上开发机器学习算法。
又比如我有全国的数据变量,但是只想研究其中某几个省份,那也需要对非相关省份进行掩盖。...读取陆地shp,并使用salem.roi来提取感兴趣的区域。 shp_path = '....读取海洋shp,并使用salem.roi来提取感兴趣的区域。 shp_path = '....读取中国各省shp,并使用salem.roi来提取感兴趣的区域。 shp_path = '....第一次import salem的时候会自动下载salem-sample-data的zip包,但最近一直下不下来,需要把之前下好的zip包存到~/.salem_cache/路径下。
xgrads的主要功能是解析Grads文件为xarray对象,可以更好的利用xarray的高维数据分析和可视化功能,加速气象相关的数据处理、分析和可视化。以下是对此库的具体介绍。...网格分析和显示系统(GrADS或OpenGrADS)是一个广泛使用的软件,用于方便访问、操作和可视化地球科学数据。它使用后缀为.ctl的描述符(或控制)文件来描述原始二进制4D数据集。...但是,只有常用的原始二进制4D数据集可以使用dask读取,并以xarray.Dataset的形式返回,其他类型的二进制数据,如dtype 是 station 或 grib,将来可能会得到支持。.../folder/*.ctl') # print all the info in ctl file print(dset) 转换 grads 数据集为 netCDF 数据集 提供了数据格式的一键转换功能...感兴趣的可以赶紧去安装使用了! GitHub链接:https://github.com/miniufo/xgrads —END—
*注:封面图片均为ai生成 前言 需求:大家看到诸多文献使用卫星云图作为天气形势系统介绍时想必也想自己也为文章中加一张,那么卫星云图如何叠加降水图呢 面向群体:需要使用卫星云图进行天气学分析或天气系统阐释的小伙伴...这样可以增加整个图像的对比度,使颜色更加饱和丰富 为什么修改单位km为m 图投影坐标系一般使用的是米为单位。直接拿千米单位的影像坐标去绘制地图,会造成非常严重的坐标错位。...为什么使用pcolorfast 对于绘制地图影像,pcolorfast能够提供更快速和直接的解决方案。它适合直接可视化大规模的不规则网格数据,比如常见的卫星影像等。...import cartopy.crs as ccrs import xarray as xr pr = xr.open_dataset('/home/mw/project/2016081408_prep.grib...plt.show() 3. era5降水叠加葵花卫星云图 import xarray as xr pr = xr.open_dataset('/home/mw/project/2016081408_prep.grib
领取专属 10元无门槛券
手把手带您无忧上云