如何将mapinfo文件加载到geopandas中
我觉得这个问题可能很简单,但我想知道怎么把mapinfo的mid/mif文件加载到geopandas里?
虽然加载和处理.shp文件很简单,但我不知道该用什么代码:
这是我想尝试的一些数据示例: http://www.stoke.gov.uk/ccm/content/business/general/open-geospatial-consortium-data-catalogue.en
cylpaths = geopandas.GeoDataFrame.from_file(path)
我试着测试一下几何形状,结果显示:
cylpaths.crs
Out[15]:
{u'ellps': u'airy',
u'k': 0.9996012717,
u'lat_0': 49,
u'lon_0': -2,
u'no_defs': True,
u'proj': u'tmerc',
u'towgs84': u'375,-111,431,-0,-0,-0,0',
u'units': u'm',
u'x_0': 400000,
u'y_0': -100000}
但是当我尝试预览数据时,得到的是一个空的数据框:
cylpaths
Out[16]:
Int64Index([], dtype='int64') Empty GeoDataFrame
我有点不知道接下来该怎么做。
1 个回答
0
我在写这个回答的时候,原问题已经有7年了,但现在说说也许还是有意义的。
现在的 GeoPandas
版本已经可以直接支持 MapInfo 文件了。这是通过 Fiona
这个库来实现的。看看下面的代码片段:
import fiona
# Checks if GeoPandas can read MapInfo files
print('MapInfo File' in fiona.supported_drivers)
上面的代码应该会输出 True
。如果是这样,说明你的环境已经准备好可以读取 MapInfo 文件了。如果不是,你可能需要重新安装 Fiona
。
如果你的环境已经可以使用 MapInfo,你可以用下面的代码来读取 这个示例数据。
import geopandas as gpd
tab_file = 'US_CNTY.TAB'
tab_data = gpd.read_file(tab_file)
到这个时候,tab_data
就是一个容易操作的 GeoDataFrame
了。
希望这些信息对你有帮助!