ArcGis中shp文件出现问号状态,打不开怎么解决?

您所在的位置:网站首页 arcgis打开sbn文件 ArcGis中shp文件出现问号状态,打不开怎么解决?

ArcGis中shp文件出现问号状态,打不开怎么解决?

2023-03-15 12:25| 来源: 网络整理| 查看: 265

一 打开不了shp文件

同学们在平常使用arcgis的时候,是否遇到了下面这样的情况。

这是由于shp文件丢失了部分数据,导致在arcgis打不开。

1个 Shape文件结构Shape文件的文件构成Shape文件由3 个文件构成: 主文件、索引文件、数据文件。它们分别是“.shp” , ".shx"".dbf”文件。

如果数据文件dbf,丢失了部分数据,就会出现上面说的打不开的错误。

二 修复

dbf文件记录的是对应的属性表信息,比如arcgis的属性表的字段、面积信息等等。

步骤如下:

1.用envi打开shp,查看shp有多少个几何实体。记录下来。

2.用DBFViewer 或者excell,打开对应的dbf文件,这里要分情况处理。

情况一:例如你在步骤1中记录该shp有15个图斑,dbf的个数是10个,这时你要填充5条假数据到dbf末端中,使dbf文件记录的几何实体与shp的几何实体数量保持一致。

情况二:例如你在步骤1中记录该shp有15个图斑,dbf的个数是20个,这时你要删除dbf末端5条,使dbf文件记录的几何实体与shp的几何实体数量保持一致。

这样就能简单修复了。

三 其他修复的方法 envi可以直接打开shp。在envi上把shp直接另存为新的数据。同理,google earth 也能直接打开shp文件,再次导出即可。 四 写代码修复的步骤

读取dbf文件,在python使用第三方库dbfread,借助dbfread可以读取dbf文件,dbfread安装如下:

pip install dbfread

下面是简单的python读取dbf示例:

#!/usr/bin/env python # -*- coding: utf-8 -*- file = r'test.dbf' from dbfread import DBF ​ # 读取 DBF 文件 table = DBF('test.dbf', encoding='gbk') ​ # 输出记录 for record in table: print(record)

安装pyshp,读取shp文件:

pip install pyshp

下面是简单的python读取shp示例:

​ def get_shp_shape_records(path): try: # 先读取原文件的几何数据和属性数据, 返回几何数据的个数 try: file = shapefile.Reader(path) shape_records = file.shapeRecords() except UnicodeDecodeError: file = shapefile.Reader(path, encoding="gbk") shape_records = file.shapeRecords() except Exception as e: print(e) return len(shape_records) file = r'test.shp' a = get_shp_shape_records(file)

后面再写,暂时没这个编程实现的需求。

大概思路是用xlwt这个模块把数据写入到dbf文件中。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3