哪种数据格式最适合开放数据分发?


15

考虑开放数据分发时,不同数据格式(性能,文件大小等)的优缺点是什么?

我们的组织希望将数据发布为开放数据。但是,对于使用哪种数据格式尚无明确的想法。当然,数据格式越“开放”,就越容易使用。

考虑以下类型时,哪种数据格式最“开放”,因此最适合用于分发开放数据?:

  • 栅格数据(我在想:GeoTIFF,Erdas Imagine IMG?)
  • 向量数据(我在想:GML,CSV,ESRI Shapefile,DXF?)
  • 表格数据(我在想:CSV?)
  • 3D数据(我在想:CityGML?)
  • 3D点罐/激光雷达(我在想:LAS?)
  • 我在这里忘记了什么吗?

另外,如果有关于开放数据格式的文档,如果您要共享,我非常感兴趣。


2
对于矢量,您可能还会考虑geojson和kml
neuhausr

1
您看到此链接了吗?gis.stackexchange.com/questions/61744/...

4
您需要区分数据交换格式和数据存储格式。例如,geojson是一种出色的数据交换格式,但很糟糕,它是一种数据存储格式。我假设您只关心分发数据的格式(即数据交换)。那是对的吗?
Devdatta Tengshe

@DevdattaTengshe:好点!目前,目的是以最方便的交换格式分发数据。
马克Verschuur

感谢大家的反馈。另外,有关要使用的文件类型与文件大小的一些技巧也将非常有帮助。
Mark Verschuur

Answers:


5

维也纳市的开放数据倡议(http://data.wien.gv.at)使用Geoserver通过Geoserver WMS和WFS服务提供对栅格和矢量地理数据的访问。这具有许多优点:用户可以下载不同格式的数据以供脱机使用(例如geojson,KML或压缩的Shapefile),也可以将其嵌入在线地图或GIS项目中以实时使用服务。


这就是我们在这里做的:maps.gcc.tas.gov.au/data 没有理由为什么你不能使用GeoServer的非空间表了。
Alex Leith

5

对于表格的csv。Excel充其量是过于复杂,而最坏的情况是完全无法访问。无法访问,PDF是一巴掌。

对于地理空间使用geojson来说,它的文本得到了很好的支持,并且没有其他唯一可行格式(shapefile)具有的技术限制。另外,除非您有充分的理由,否则应将其放在WGS84中,请记住,大多数用户将处于另一种状态,并且不需要状态平面。


5

我非常喜欢NetCDF用于连续/数组数据(即栅格)。NetCDF的优点是:

  • NetCDF是自我描述的(即,数据定义可通过文件头获得),因此您无需提供辅助元数据文件
  • NetCDF4允许存储n维数据(使用磁盘上的HDF5数据格式,这是一个优点,因为它允许文件的大小与您的OS一样大)。这带有合理的压缩和对数据的快速访问。请注意,NetCDF3不支持n维数据,并且在32位系统上的文件大小限制约为2GB。
  • NetCDF是一种开放格式,因此通过通用库访问数据通常也不是问题。例如,在python中,从scipy足够简单以读取数据片段:
from scipy.io import netcdf
f = netcdf.netcdf_file('source.nc')
print(nc.dimensions) #take a look at the dimensions of the data
print(nc.variables)  #A dictionary containing all the variables
nc.variables["some_data"].dimensions #The dimensions this variable is in, e.g. lat, lon
out_array = nc.variables["some_data"].data
f.close() #and we're done

我可以看到的NetCDF4的唯一缺点是对标准GIS软件包(如ArcGIS和QGIS)的支持不大(尽管我非常希望对此进行纠正!)。

编辑其他一些支持NetCDF的软件包

一些支持NetCDF的标准编程语言(尽管公平地说,任何可以读取HDF的东西都可以读取NetCDF4):

对于数学和统计用户,您具有:

特别是在GIS中:

  • GDAL将为您转换数据
  • 同样是FME
  • ArcGIS支持NetCDF(尽管根据我的经验,这不是最好的支持级别)
  • 有一个QGIS插件开发

如果您想快速查看NetCDF文件,可以使用NASA的跨平台Panoply。如果您对更多感兴趣,UCAR Unidata拥有软件列表


NetCDF是一个糟糕的选择,它确实在python之外没有任何支持。它可能有很好的支持,但是tiff,png和jpeg实际上支持每种语言。
加尔文

2
我非常不同意。我已经在上面编辑了响应,以显示支持NetCDF的软件包的快速列表。以我的经验,这是任何多维科学数据(例如天文学和气象学)的一种选择格式。PNG和TIFF对于分发栅格数据并不坏,并且查看数据当然很容易,但是它们不能很好地缩放到大量的多维数据。永远不要使用JPEG来分发科学数据(尽管如果您要向某人发送地图,它就可以很好地工作)。
om_henners 2013年

4

我会说:

  • 用于矢量数据的Shapefile或GML
  • .obj-3D模型文件
  • .xyz(简单CSV)用于点云
  • CSV表格数据
  • GeoTIFF栅格数据

这些格式可由开源软件轻松读取,并可轻松转换为特定应用程序所需的任何其他格式。

还要+1才能打开数据!


2
我很想知道为什么您建议使用Shapefiles和GML作为矢量数据。两者都是可怕的格式。GML唯一可以节省的地方是它是OGC格式。
Devdatta Tengshe

1
Shapefile在许多应用程序中都是可读的,并且可以毫无问题地转换为其他文件。你有什么建议?
til_b

3
避免使用shapefile。它们可以工作,但是存在严重的技术限制。
尼克,

1
那么,您认为没有shapefile的技术限制呢?
til_b

2
从“开放”的角度来看,@ til_b GeoTIFF是一种不错的格式。但是,对于存储(或作为下载提供),这很糟糕,因为文件可能很大。您是否知道提供无损压缩的开放栅格格式?
Mark Verschuur

1

实际上,在opendata.SE上也出现了完全相同的问题:SE:发布地理空间数据最有用的格式是什么?

因此,希望我在这里引用自己的答案不会违反任何政策:

我的经验是,从许多政府数据集中制作地图:

对于点数据,CSV最好,带有“ lat”和“ lon”列。使用多种工具非常容易,包括文本编辑器,电子表格等。它有两个缺点:

  1. GDAL需要.vrt伴随文件。
  2. latlon列的命名并非完全标准。许多工具在接受方面都相当自由。

对于线和面,按优先级降序排列:

  1. GeoJSON。易于使用,并且具有在文本编辑器或geojson.io中进行编辑的能力是一项真正的优势,如果您需要进行搜索/替换,删除几个奇怪的对象或将文件从一个文件复制粘贴到另一个文件。另一个好处是非GIS开发人员可以理解它。我遇到的唯一问题是有人提供数据(例如MultiPoint)而不是Point。
  2. Shapefile。得到广泛支持,但有两个不便之处。首先,它是文件的集合,因此您必须传递.zip并将其解压缩。第二,字段名称限制为10个字符。对于普通的非GIS人员,很难编辑它们。
  3. KML / KMZ。这些通常有很多无关紧要的内容(样式,图标等),并且属性有时被编码为微型HTML表,这确实很难使用。至少您可以使用Google工具轻松地对其进行编辑。

坦白说,最好的答案可能是“所有人”。帮个忙,并以CSV(如果需要的话),GeoJSON,压缩的Shapefile和KMZ发布数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.