c#保存数据格式为.cvs_从零开始GIS()— 五花八门的数据格式

本文介绍了GIS领域中常见的数据格式,包括矢量数据的Shapefile、File GeoDatabase、Coverage、E00、GeoJSON、KML/KMZ、AutoCAD(DXF)和MapGIS,以及栅格数据的GeoTIFF、Erdas Imagine(img)和ENVI(hdr)。文章探讨了各种格式的特点、用途和相互关系,帮助读者理解GIS数据的多样性。
摘要由CSDN通过智能技术生成

初学者往往会被格式五花八门的 GIS 数据文件,弄得一头雾水,每个软件(ArcGIS、SuperMap、MapGIS等等)也都喜欢自己整一套数据格式,更想让自己开发的数据结构成为标准,这些厂商为了达到商业目的各自为阵,给我们这些学习和使用者带来了很多麻烦,增加了学习成本,数据互操作困难,这个软件编辑的数据,那个软件打不开。

有意思的是这种格式间的壁垒,却让有心之人嗅到了商机,从而很多格式转换工具被开发出来,比如著名的 FME(Feature Manipulate Engine),支持100多种不同 GIS 空间数据格式之间的转换,自然正版价格不便宜。

3ed5dffb5393d29ff97b0260f37502e2.png

透过现象看本质,数据模型决定数据结构,数据格式又是根据数据结构设计的。就矢量数据模型来说,需要描述的无非是几何实体(点、线、面)、空间关系、空间索引、空间参考、一般属性等内容,所以无论是什么数据格式的文件,基本都是在和上面这些信息打交道,有的格式可能注重于读写效率、有的可能没有保存拓扑关系、有的可能注重数据压缩。

栅格数据是将空间分割成有规律的网格,每一个网格称为一个单元(像素),并在各单元上赋予相应的属性值来表示实体的一种数据形式,它的数据结构较于矢量数据更加简单了。各种数据格式的差异主要体现在压缩方式、读写效率、元数据等方面。

f4fd4937a4b414945d6320e419a56af4.png

下面就着重介绍一下几种常见的格式:

01

矢量数据

矢量数据格式,如文章开头的导图所示,种类繁多,这里只介绍几种常见、常用的格式,这几个格式中大部分都和 GIS 第一大厂 ESRI 脱不开关系。

1.Shapefile

shapefile 可能是大多学 GIS 接触最多也是接触最早的数据格式之一,它是ESRI 提出的一种矢量数据格式,也是最被广泛使用的矢量数据格式。目前,它已经是地理信息软件界开放标准格式,也是一种重要的交换格式,能够在ESRI与其他公司的产品之间进行数据互操作,如果一个 GIS 软件不支持 shp,肯定会贻笑大方。需要注意的是 shapefile 不能存储拓扑关系

一个 shapefile 文件至少有三个文件:

  • *.shp:主文件用于存储地理要素的几何图形 

  • *.shx:索引文件用于存储图形要素和属性信息索引

  • *.dbf:dBase 表文件用于存储要素的一般属性信息

除此之外,还有一些可选文件:

  • *.prj:存储空间参考信息

  • *.sbn/sbx:存储几何实体的空间索引信息

  • *.fbn/fbx:存储只读集合实体的空间索引信息

每个 shapefile 文件只能存储一种几何类型(或点、或线、或面)的数据,在 ArcCatalog 中浏览 shp 数据文件夹可以看到,文件名左侧图标清晰的标识出该 shp 所存几何实体的文件类型。

b5aa5821b5be1c1f48dec90125506fb5.png

2. File GeoDatabase

Esri 创建的一种采用标准关系数据库技术来表现地理信息的数据模型。其具有结构和性能上的优势:快速的性能、多样的数据关系、兼容存储栅格数据、优化空间索引以及数据压缩等。下图可以看到,在ArcGIS 中创建数据库时有三种选项:

f7a42fb58d901c1ff59420a6d9cb18f5.png

File Geodatabse 不同于 Personal Geodatabase,File GeoDatabase 在存储能力、平台支持、读写速度、压缩率等方面全面强于 Personal Geodatabse, 具体差异不在此赘述。Database Connection 连接的就是ArcSDE GeoDatabase,它通过 ArcSDE 使用大型数据库 Oracle,SqlServer,DB2 等存储空间数据,可以实现并发操作,不过需要单独的用户许可。

6560e26feb706122b9a0863e73171796.png

3.  Coverage

Coverage 也是 ESRI 提出的一种地理空间数据格式,现在已经很少使用,但毕竟是大厂出品,这里还是说一下。它没有扩展名,只是一组文件夹。Coverage使用要素类来存储点、弧、多边形或注释。tic是地理控制点,有助于确定覆盖范围。

f1d4646653b64c5bbc53a9c7aa6c982b.png

4.  E00

后缀为E00的文件是Esri的一种通用交换格式文件。这种文件通过明码的方式表达了几乎所有的矢量格式以及属性信息,广泛应用于与其他软件之间进行数据交换。

5. GeoJSON

GeoJSON 是一种基于JSON的开源标准格式,其和 JSON 一样数据结构简单,可读性强,前后端兼容性好,也特别适合在 Web 中使用。GeoJSON 的点数据结构说明如下,详情请点击

{  "type": "Feature",  "geometry": {  "type": "Point",  "coordinates": [125.6, 10.1]     },  "properties": {  "name": "yy" }

由于 GeoJSON 结构简单、使用灵活,许多轻量的前端地图展现都采用 GeoJSON,比如前端图表组件 EChart 中地图显示就是采用 GeoJSON 作为数据源。

238bb021838dc66aa7e2bf4085da5716.png

在 web 地图中,常常有这样的需求:点击或搜索某块区域时,让这块区域能够高亮显示,来改善用户体验,这里的高亮效果就可以通过 GeoJSON 来处理,后面会写几篇文章介绍如何制作、使用GeoJSON。

29daf64b8b61c5903f602a82bea9085c.gif

6. KML/KMZ

KML是标记语言(Keyhole Markup Language)的缩写,最初由 Google 旗下 Keyhole 公司开发,是一种基于XML 语法与格式的、用于描述和保存地理信息(如点、线、图像、多边形和模型等)的编码规范。KMZ 是一个经过ZIP格式压缩过的 KML 文件,其文件自身可以包含图标,影像和模型等。KMZ/KML 可以被 Google Earth、Google Map 和 ArcGIS Earth 等识别并显示。

你可以通过 ArcGIS ToolBox 中「Layer to KML」工具将 *.lyr 文件转为 kml 格式,然后打开google earth 添加查看:

88c32c6d0a9602b47e39ac8472934c0f.gif

7. AutoCAD(.dxf)

DXF 是 AutoCAD 与其它软件之间进行 CAD 数据交换的开放矢量数据文件格式,可以分为两类:ASCII 格式和二进制格式;ASCII 具有可读性好的特点,但占用的空间较大;二进制格式则占用的空间小、读取速度快。由于 AutoCAD 现在是最流行的 CAD 系统,DXF 也被广泛使用,成为事实上的标准。绝大多数 CAD 系统都能读入或输出 DXF 文件。

8. MapGIS

MapGIS 现在大多使用于国土、市政相关领域,应用范围也挺广,毕竟是国产软件还是要支持一下的。

ad1701b1e6e6f8ea491347c4dc1d62da.png

其数据文件主要包括工程文件文件和工程内各工作区的文件。工作区是MAPGIS提出的一个概念,简单地说,工作区就是一个数据池,存放实体的空间数据、拓扑数据、图形数据和属性数据,每个工作区都对应于一个MAPGIS数据文件。数据文件主要有以下几种:

  • 工作区(.MPJ文件):工程文件,存放工程中所有的工作区文件

  • 点工作区(.WT文件):点(PNT)

  • 线工作区(.WL文件):线(LIN)、结点(NOD)

  • 区工作区(.WP文件):线(LIN)、结点(NOD)、区(REG)

  • 网工作区(.WN文件:线(LIN)、结点(NOD)、网(NET)

  • 表工作区(.WB文件):无空间实体,仅有表格记录

02

栅格数据

1. GeoTIFF (.tiff)

GeoTIFF 已经成为 GIS 和卫星遥感应用的行业图像标准文件。几乎所有的GIS和图像处理软件包都具有 GeoTIFF 兼容性。GeoTIFF 包含的其他文件有:

  • TFW:渲染栅格地理位置所需的文件

  • XML:可选,元数据文件

  • AUX:输出辅助文件,存储投影等信息

2. Erdas Imagine(.img)

Erdas Imagine是美国 ERDAS 公司开发的遥感图像处理系统(ERDAS IMAGINE)使用的遥感影像格式。这种格式广泛应用于遥感数据处理,因为它提供了一个用于整合来自多源传感器数据的框架。该框架支持地理参考、地理编码元数据、多波段、不同数据类型的数据的存储,同时该格式基于瓦片的方式进行数据的存取,这样加快了数据显示和重采样的速度。

3. ENVI (.hdr)

ENVI 使用的是通用栅格数据格式,包含一个简单的二进制文件和一个相关的ASCII(文本)的头文件。这也保证了单个 ENVI 栅格文件没有大小上限。ENVI 栅格文件必须包含这两个文件,其中头文件的后缀名为 .hdr,数据文件的后缀随意,甚至可以不带后缀名。这两个文件是通过文件名来关联,即数据文件和头文件名称一致。

4. HDF (Hierarchical Data Format)

HDF 格式是一种不必转换格式就可以在不同平台间传递的数据格式,由美国国家高级计算应用中心(NCSA)研制,已经应用于 MODIS、MISR 等数据中。当前流行的版本是 HDF5。HDF 有6种主要数据类型:栅格图像数据、调色板(图像色谱)、科学数据集、HDF 注释(信息说明数据)、Vdata(数据表)、Vgroup(相关数据组合)。HDF 采用分层式数据管理结构,并可以直接从嵌套的文件中获得各种信息。因此,打开一个HDF文件,在读取图像数据的同时可以方便的查取到其地理定位、轨道参数、图像属性、图像噪声等各种信息参数。

到这里常用的 GIS 常用的数据格式介绍完了,这里给了矢量数据更多的篇幅,因为矢量数据结构更加复杂,在 GIS 中使用场景也更丰富灵活;而栅格数据就数据本身来说结构相对简单许多,但其背后却是一门遥感学科,牵扯到的关于影像的一系列知识,可绝不是作者随便说几句就能掰扯清楚的,咱们来日方长~~~

93cac9f3ea0c554156a3d8ba95b36833.png你点的每个在看,我都认真当成了喜欢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
main.py文件是一个用于处理kddcup.data_10_percent_corrected_handled2.cvs数据的全连接层神经网络的代表。全连接层是人工神经网络中的一种常见结构,它可以将输入数据和输出数据的每个神经元都连接起来。 在main.py中,我们首先需要读取kddcup.data_10_percent_corrected_handled2.cvs文件中的数据。这个数据文件是一个用于网络入侵检测的数据集,包含了许多网络连接的特征信息。读取数据后,我们需要对数据进行预处理,例如去除缺失值、进行标准化等。 接下来,我们定义全连接层的神经网络结构。全连接层是一种最简单的神经网络结构,其中每个神经元都与上一层所有神经元相连接。我们可以使用Python深度学习框架(如Tensorflow、PyTorch)来实现这个全连接层网络结构。在定义网络结构时,我们可以指定网络的层数、每层的神经元数量以及激活函数等。 然后,我们需要对数据进行训练和测试。在训练阶段,我们将使用数据集中的一部分数据作为训练集,并将其输入到网络中进行训练。通过计算预测结果与实际标签之间的差异(常用的衡量指标有交叉熵损失函数),我们可以通过反向传播算法调整网络的权重和偏置,以逐渐优化网络的性能。在测试阶段,我们将使用剩余的数据作为测试集,评估网络在未见过的数据上的性能表现。 最后,我们可以根据网络的训练和测试结果对模型进行优化和改进。这可能包括调整超参数、增加正则化项来控制过拟合等。 总之,main.py文件用于实现一个全连接层神经网络,用于处理kddcup.data_10_percent_corrected_handled2.cvs数据。通过不断地训练和优化,我们可以利用这个网络模型来对网络连接进行分类和预测,从而实现网络入侵检测等任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值