JAVA以SHP文件,切割一个数据集(GRB2、NC)中边界内的范围或数据

气象数据grib/grib2的处理方法汇总 之前接触的数据格式大都是nc格式,使用matlab和python都比较熟悉怎么读取,进行数据处理工作。最近发现气象数据中格式很多采用grib\grib2格式。以下是对grib\grib2格式数据处理进行的总结。 阅读详情

JAVA以SHP文件,切割一个数据集中边界内的范围或数据

什么是SHP文件

	*.shp(Shapefile)是地理信息系统(GIS)​中最常用的矢量数据格式之一,用于存储地理空间数据(如点、线、面等)。
	一个完整的Shapefile通常由多个文件组成shp主文件、shx索引文件、dbf属性表等。
	它几乎兼容所有GIS软件与多种语言(JAVA、PAYTHON等),相比GeoJSON、KML等格式,文件体积更小。

注:由于本次代码以grb2文件举例,若是需要了解nc文件,请看上次的文章《JAVA解析气象文件(GRIB、NC)并以JSON格式输出》链接: link

代码逻辑

	本次代码是使用shp文件中的坐标边界闭环,查询在一个大数据集(如全亚洲的数据)中shp(如中国的SHP文件)边界内的数据。
	分为以下几步:
	1.根据shp文件读取对应的边界数据,由于边界数据多以不规则多边形为主(如行政区划、湖泊、地形等),用Polygon对象存储边界数据并转化为Geometry对象
	2.解析nc或grb2(大数据集)的所有数据,分析数据内容与格式,并对数据进行逻辑处理
	3.从数据集中筛选出边界内的数据

部分内容解释

首先了解以下几个比较重要的对象,帮助我们理解代码

Polygon对象

Polygon(多边形)是GIS和计算机图形学中的核心几何对象,用于表示闭合的二维区域,如行政区划、湖泊、建筑轮廓等。
它的实际存储结构如下所示:
基础结构:
POLYGON ((109.0000000001 26.0000000001, 109.xxxxxxxxxx 26.xxxxxxxxxxxxxxx, 109.xxxxxxxxxxxxxxx 26.xxxxxxxxxxxxxxx 。。。109.0000000001 26.0000000001))
当它所描述的区域是一片闭环的区域中内部存在另一个不属于它的闭环区域,也就是常说的区域带孔洞,可以存在多个:
POLYGON ((109.0000000001 26.0000000001, 109.xxxxxxxxxx 26.xxxxxxxxxxxxxxx, 109.xxxxxxxxxxxxxxx 26.xxxxxxxxxxxxxxx 。。。109.0000000001 26.0000000001)(120.0000000001 55.0000000001, 120.xxxxxxxxxx 55.xxxxxxxxxxxxxxx, 120.xxxxxxxxxxxxxxx 55.xxxxxxxxxxxxxxx 。。。120.0000000001 55.0000000001)(。。。))
还有一种情况,是当所有描述区域是分开的两个闭环区域时,也就是常说的飞地,以代码进行解释:

        // 1. 获取数据存储

        File file = new File("D:\\xxxxxxxxx.shp");
        try {

            // 2. 获取数据存储
            FileDataStore store = FileDataStoreFinder.getDataStore(file);

            // 3. 获取特征源
            SimpleFeatureSource featureSource = store.getFeatureSource();

            // 4. 获取特征类型
            SimpleFeatureType schema = featureSource.getSchema();
            System.out.println("Schema: " + schema);
            int i = 0;

            // 5. 遍历特征
            try (FeatureIterator<SimpleFeature> features = featureSource.getFeatures().features()) {
                while (features.hasNext()) {
                    SimpleFeature feature = features.next();
                    String iId = String.valueOf(feature.getAttribute(5));
                    System.out.println("--------------"+iId);
                    String string = feature.getAttribute(0).toString();
                    System.out.println(string);
                }
控制显示国界线省界线等shp文件(五) osgearth实现国界线省界线等shp文件的加载,可以实现添加、删除以及控制国界线省界线图层的透明度。 阅读详情

相关推荐

Java读取解析GRIB2文件

Java读取、解析 GRIB2文件。测试数据:可下载GFS提供的:http://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/

java读取grib2文件

java读取grib2文件,使用netcdfAll,内附jar包与例子,netcdfAll-4.3.jar为jdk6版本,netcdfAll-4.6.jar为jdk7版本

GRIB2 数据 转 JSON

GRIB2 数据 转 JSON,内附中文、英文使用说明,工具来自GitHub,侵权删

气象数据.grib、.grib2、.grb、.grb2、.nc 文件网格数据集抽取工具

.grib、.grib2、.grb、.grb2、.nc 文件网格数据集抽取工具 命令调用示例: java -jar GribFileCut.jar ***.Grib ***.nc tem,win_u,win_v [70.0,140.0,0.0,60.0] 参数1:.grib、.grib2、.grb、.grb2、.nc 文件等需要抽取数据的源文件。 参数2:抽取后输出的文件,只能是.nc格式。 参数3:要抽取的网格数据名称,从源文件中查看。多个以","间隔。 参数4:网格数据裁剪范围,不传则不裁剪。

grib2数据查看工具

panoply,一款可用来查看GRIB格式数据文件的小工具。文件拖进去即可,使用方便

java将grib2数据转为json格式

java将grib2数据转为json格式,附操作说明,grib2数据文件以及转换后的json文件,数据来源为https://nomads.ncep.noaa.gov/gribfilter.php?ds=gfs_0p25 ECMWF数据由于调整过grib2数据格式,所以不支持解析ECMWF开放的预报数据

【传感器标定(三):激光雷达标定原理与实现详解】

本文系统介绍了激光雷达标定的基本原理与方法。主要内容包括:激光雷达标定的分类(内参标定和外参标定)、坐标系定义和刚体变换数学基础;详细阐述了测距误差和光束方向两种内参标定方法;重点分析了基于目标(平面标定板、三维标定物)和基于运动(手眼标定、点云配准)的外参标定方法;介绍了多传感器联合标定技术及非线性优化、鲁棒标定等实现方法;最后提出了定量和定性两种标定评估体系。为激光雷达在自动驾驶等领域的精确应用提供了系统的标定技术指导。

weixin_47429781的博客 3790

ccproxy 6.61 注册机(纯绿/傻瓜/真正去除线程限制)

导读:   软件介绍   1、 CCPROXY 6.61 注册机(纯绿/傻瓜/真正去除线程限制)   ***前言,这次的升级官方改动不大,据说只是为了不被某些软件当病毒***   附件包中解压即免安装版,CcREGTOOLFF.exe为注册机。   本人继续向大家隆重推出《CCPROXY6.61哎呀……破解版》   还是那个提示:   在此之前,本人还是那句老话想提示大家,CCPROXY是

i53nd的专栏 1万+

用HFSS仿真平面线圈的电感量

平面线圈是指在平面上绕制而成的线圈,如PCB上的电感线圈、无线供电使用的金属丝绕制而成的线圈等。根据线圈的不同形状可将平面线圈分为方形线圈,六角形线圈、八角形线圈、螺旋原型线圈等。

johnboat的专栏 1万+

导数在工程与AI中的12个实战应用解析

导数作为数学中的基本概念,本质是描述变化率的工具,其核心价值在于将非线性问题局部线性化处理。从原理上看,通过极限过程捕捉函数瞬时变化特性,使工程师能精确控制系统动态行为,帮助科学家量化自然规律变化速率。在技术实现层面,现代符号计算(如Mathematica)、数值计算(如MATLAB)和自动微分(如PyTorch)工具链的发展,大幅提升了导数计算的效率与精度。典型应用场景涵盖机械控制(如ABS防抱死系统)、金融工程(如期权希腊值计算)、医疗影像(如Canny边缘检测)等领域。特别在机器学习中,反向传播算法依

weixin_35509395的博客 317

激光SLAM总结——Fast LIO / Fast LIO2 / Faster LIO

激光SLAM总结——Fast LIO / Fast LIO2 / Faster LIO 在之前的工作中有接触过LOAM,最近在工作中又接触到Faster LIO相关的工作,于是想着对Fast LIO / Fast LIO2 / Faster LIO这一系列工作进行一个简单的总结,以加深自己对激光SLAM算法的理解,之前总结过的一些和激光SLAM算法相关的博客还有,感兴趣的同学可以一起学习讨论: 激光SLAM总结——VLOAM / LIMO算法解析 激光SLAM总结——LIO-Mapping / LIOM /

weixin_44580210的博客 1万+

【LLM评估篇】Ceval | GAIA | MMLU benchmarks

- 一些大模型的评估模型: - 多轮:MTBench - 关注评估:agent bench - 长文本评估:longbench,longeval - 工具调用评估:toolbench - 安全评估:cvalue,safetyprompt等 本文还介绍了其他主流的大模型评估指标等及其使用

发现问题,并解决问题,批判性思维 6947

深度学习在移动开发中的应用:实时姿态估计实战

我们将使用TensorFlow Lite框架,结合专为移动端优化的MoveNet模型,实现一个能够在主流Android设备上达到30FPS的多人姿态跟踪解决方案,并深入探讨其优化技巧和实际应用场景。特别是3D姿态估计、多人长期跟踪等前沿技术的发展,将进一步推动移动端姿态估计技术的应用深度和广度。在下一篇文章中,我们将探讨深度学习在移动端的另一个创新应用:实时手势识别,包括如何在资源受限的环境中实现复杂手势的实时识别,以及这项技术在AR/VR交互、智能家居控制等场景中的应用。第四部分:典型应用场景实现。

Programming Talk 325

大数据安全 | 期末复习(上)| 补档

大数据定义:无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

知识库搭建ing 2589

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Redis详细解释与windows环境下哨兵模式的配置
下一篇: JAVA后端——依据离散点/格点生成GEOJSON以渲染色斑图
山水如墨染丶
博客等级 码龄8年 36粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值