gis利器之Gdal(一)
现如今,随着很多行业对gis的了解越来越深入,很多关于智慧的标签便纷纷贴上了,比如智慧园区、智慧交通、智慧城市、智慧校园等等诸多的行业深度应用。国内外有很多gis的相关产品,国外有大名鼎鼎的arcgis,国内有超图、mapgis等。作为一位想研究数据制作的技术人,如果想不依赖第三方的库,毕竟国产化,自主可控是未来长期的一个话题。
之前介绍过一款轻量级的gis数据处理工具,1、GeoTools之入门简介、干货!使用Geotools解析shap数据实例等,如果应对一些常见的数据,如shp等的解析需求,完全可以应对。如果想要解析更多的数据,比如cad、gdb等等,geotools的作用就比较捉襟见肘了。
今天介绍一款好用的gis利器:gdal。它不仅能处理更多种类型的数据,而且还是开源的。虽然它是C++开发的库,但是经过编译后,可以支持多种开发语言,比如java、c#、python等等。同时,arcgis等软件底层也是基于gdal来进行开发的,由此,掌握gdal就比较有必要的。它能让你更灵活的处理数据,同时可以跨平台应用。
GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,提供对矢量数据的支持。
Gdal的一些资料可以参考网站:https://www.osgeo.cn/gdal/
Gdal的主要特征
GDAL提供栅格数据的支持,包括Arc/Info ASCII Grid(asc),GeoTiff (tiff),Erdas Imagine Images(img),ASCII DEM(dem) 等格式。
GDAL使用抽象数据模型(abstract data model)来解析它所支持的数据格式,抽象数据模型包括数据集(dataset),坐标系统,仿射地理坐标转换(Affine Geo Transform), 大地控制点(GCPs), 元数据(Metadata),栅格波段(Raster Band),颜色表(Color Table),子数据集域(Subdatasets Domain),图像结构域(Image_Structure Domain),XML域(XML:Domains)。
GDALMajorObject类:带有元数据的对象。
GDALDdataset类:通常是从一个栅格文件中提取的相关联的栅格波段集合和这些波段的元数据;GDALDdataset也负责所有栅格波段的地理坐标转换(georeferencing transform)和坐标系定义。
GDALDriver类:GDAL会为每一个所支持的文件格式创建一个该类的实体,来管理该文件格式。
GDALDriverManager类:用来管理GDALDriver类。
OGR体系结构
Geometry类:Geometry (包括OGRGeometry等类)封装了OpenGIS的矢量数据模型,并提供了一些几何操作,WKB(Well Knows Binary)和WKT(Well Known Text)格式之间的相互转换,以及空间参考系统(投影)。
Spatial Reference类:OGRSpatialReference封装了投影和基准面的定义。
Feature类:OGRFeature封装了一个完整feature的定义,一个完整的feature包括一个geometry和geometry的一系列属性。
Feature Definition类:OGRFeatureDefn里面封装了feature的属性,类型、名称及其默认的空间参考系统等。一个OGRFeatureDefn对象通常与一个层(layer)对应。
Layer类:OGRLayer是一个抽象基类,表示数据源类OGRDataSource里面的一层要素(feature)。
Data Source类:OGRDataSource是一个抽象基类,表示含有OGRLayer对象的一个文件或一个数据库。
Drivers类:OGRSFDriver对应于每一个所支持的矢量文件格式。类OGRSFDriver由类 OGRSFDriverRegistrar来注册和管理。
Gdal资源下载地址
https://www.gisinternals.com/mapmanager.html
总结:今天主要是介绍gdal工具库,它的主要功能,组织结构,先让大家有一个简单的认识,后面在具体在代码层面进行展开。
gis利器之Gdal(一)相关推荐
- python利器的使用-图文详解python开发利器之ulipad的使用实践
Ulipad是一个国人limodou编写的专业Python编辑器,它基于wxpython开发的GUI(图形化界面).下面这篇文章主要介绍了python开发利器之ulipad的使用实践,文中介绍的非常详 ...
- python利器怎么编程-Python任务调度利器之APScheduler详解
任务调度应用场景 所谓的任务调度是指安排任务的执行计划,即何时执行,怎么执行等.在现实项目中经常出现它们的身影:特别是数据类项目,比如实时统计每5分钟网站的访问量,就需要每5分钟定时从日志数据分析访问 ...
- ML之FE:pandas库中数据分析利器之groupby分组函数、agg聚合函数、同时使用groupby与agg函数组合案例之详细攻略
ML之FE:pandas库中数据分析利器之groupby分组函数.agg聚合函数.同时使用groupby与agg函数组合案例之详细攻略 目录 pandas库中数据分析利器之groupby分组函数.ag ...
- 安卓APP破解利器之FRIDA
本文讲的是安卓APP破解利器之FRIDA,在我去年参加RadareCon大会的时候,我了解到了一个动态的二进制插桩框架--Frida.起初我觉得它似乎只有一丁点趣味,后来经过实践才发现它原来是如此的有 ...
- android.cat 镜像,Android开发利器之pidcat安装方式
介绍pidcat: pidcat 是Android届JakeWharton大神开发的一款命令行工具,堪称Android开发利器,它能方便Android程序猿捕获日志,过滤日志,定位程序问题,超级好用. ...
- 系统重构数据同步利器之Canal实战篇
一.背景 二话不说,先上图 上图来自于官网(https://github.com/alibaba/canal),基本上涵盖了目前生产环境使用场景了,众所周知,Canal做数据同步已经是行业内标杆了.我 ...
- 【量化】股市技术分析利器之TA-Lib(二)
作者:未来大佬 来源: 恒生LIGHT云社区 上篇文章 [量化]股市技术分析利器之TA-Lib(一) ,主要介绍了Ta-lib的基础知识与绘制布林线,本文将着重介绍TA-Lib中强大的价格转换.周期指 ...
- 【云原生利器之Cilium】什么是Cilium
文章目录 云原生利器之Cilium 一.什么是cilium 二.Cilium使用场景 关于容器网络接口 ( CNI ) 三.网络解决方案Flannel,Calico 和 Cilium 对比 DPDK ...
- java uml类图教程_Java利器之UML类图详解
原标题:Java利器之UML类图详解 (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者- Code4Android 如需转载,发送「转载」二字查看说明 前言 UML(Unified Modeli ...
最新文章
- 灯塔的出现给那些有想法,有能力而又缺乏资金的社区人士提供了一条途径,也给那些有资金的BCH爱好者提供了一条投资渠道,良性的共赢机制在保证平台健康发展的前提下,一定会催生出更多基于BCH的应用。
- UVA-673-栈-水题
- python代码大全表解释-python操作列表的函数使用代码详解
- php实现单个用户禁止重复登录,防止同一用户同时登陆
- OpenMetric与时序数据库模型之主流TSDB分析
- 一加9系列全网预约量破200万:3月24日见!
- 10-10-030-简介-Kafka之数据存储
- git 源代码自动检查_除了GitHub,你还知道那些免费源代码托管网站?
- 中国政法大学政治与公共管理学院丛日云教授在毕业典礼上的演讲在网络上暴红,
- 超实用的JavaScript代码段 Item1 --倒计时效果
- 运输问题(模型建立、表上作业法、产销平衡、产销不平衡)
- rational rose mysql_用Rational Rose逆向工程(java)生成类图(教程和错误解决)
- 全民居家都带不动的AI健身,到底是不是伪命题?
- .NET Core之EF Core
- LeCo-238. 除自身以外数组的乘积
- 字节跳动梁汝波:管理者过于依靠规则会使组织僵化 |王兴:反垄断无损美团竞争优势...
- 安全帽图像识别python_基于opencv的安全帽佩戴检测
- VUE3.0——组件传值
- 开源发票识别_自由职业者和小型企业的前4种开源发票工具
- 使用python画3D立体爱心