如何在作为geopandas数据帧(python)导入时保留geojson行字符串中的所有元素



我正在尝试将GeoJSON文件导入为地理标准数据帧:

{'type': 'Feature',
 'properties': {'vehicle': 63},
 'geometry': {'type': 'LineString',
  'coordinates': [[-121.579609, 39.777788, 14.21, 1609520401.0],
   [-121.581177, 39.777786, 14.04, 1609520411.0],
   [-121.58277, 39.777762, 13.64, 1609520421.0],
   [-121.584358, 39.777759, 13.91, 1609520431.0],...
{'type': 'Feature',
   'properties': {'vehicle': 283},
   'geometry': {'type': 'LineString',
    'coordinates': [[-121.600506, 39.777636, 12.58, 1609520403.0],
     [-121.599111, 39.777643, 11.71, 1609520413.0],
     [-121.597714, 39.777671, 12.29, 1609520423.0],
     [-121.596323, 39.77769, 12.03, 1609520433.0],...

在我导入后使用:

gpdf = gpd.read_file('file.geojson',
                    driver='GeoJSON')

每个coordinates列表(例如1609520401.0(中的最后一个(第四个(元素缺失:

    vehicle geometry
0   63      LINESTRING Z (-121.57961 39.77779 14.21000, -1...
1   283     LINESTRING Z (-121.60051 39.77764 12.58000, -1...
2   519     LINESTRING Z (-121.63427 39.77045 14.03000, -1...
3   2253    LINESTRING Z (-121.60616 39.77775 16.94000, -1...
4   2376    LINESTRING Z (-121.58091 39.80047 13.01000, -1...

请注意,行字符串现在结束于每个列表的第三个元素(例如14.21000(

我通过导出为GeoJSON文件来确认这个问题。

有人看到我做错了什么吗?

提前感谢您抽出时间!

根据geoJSON规范:https://www.rfc-editor.org/rfc/rfc7946#page-7.

3.1.1位置

位置是一个数字数组。必须有两个或多个
元素。前两个元素是经度和纬度,或
东距和北距,精确地按顺序排列,并使用十进制
数字。海拔高度或海拔高度可作为可选的第三个
元素。

实现不应将位置扩展到三个元素之外
,因为额外元素的语义未指定且
不明确。历史上,一些实现使用第四个
元素来携带线性引用度量(有时表示为
"M"或数字时间戳,但在大多数情况下,解析器将无法正确解释这些值。附加元素的解释和含义超出了本
规范的范围,解析器可能会忽略附加元素。

你没有做错什么。parser只是忽略了geojson内容中坐标的第四个elements

最新更新