您的位置:

为什么GDALException("Invalid OGR Integer Type: %d" % type_input),怎么解决

  发布时间:2023-03-09 12:25:16
OGR 是一个开源的地理信息系统库,用于读写多种矢量数据格式,包括文件、SDTS、TIGER 和 GML 等。OGR 支持许多不同的数据类型,其中包括整数类型这个错误消息表示你使用的 OGR 整数类型无效。你需要检查你的代码,确保使用了正确的 OGR 整数类型。

报错的原因

这个错误是在你使用 Django 进行 GIS (地理信息系统) 相关操作时出现的,并且是由于你使用了无效的 OGR (OpenGIS Simple Features Reference Implementation) 整数类型引起的。

OGR 是一个开源的地理信息系统库,用于读写多种矢量数据格式,包括 ESRI Shapefile、MapInfo 文件、SDTS、TIGER 和 GML 等。OGR 支持许多不同的数据类型,其中包括整数类型。

GDALException("Invalid OGR Integer Type: %d" % type_input) 这个错误消息表示你使用的 OGR 整数类型无效。你需要检查你的代码,确保使用了正确的 OGR 整数类型。如果你不确定使用了哪种整数类型,可以查看 OGR 文档,了解支持的整数类型。

如何解决

要解决这个错误,你需要检查你的代码,确保使用了正确的 OGR 整数类型。

OGR 支持许多不同的整数类型,其中包括 8 位、16 位、32 位和 64 位整数类型。例如,如果你使用了 8 位整数类型,你可以这样使用它:


from osgeo import ogr

# 创建 OGR 数据类型
int8_type = ogr.OFTInteger8

# 使用 OGR 数据类型
field_defn = ogr.FieldDefn("IntField", int8_type)

注意,你不能使用 OGR 整数类型来表示负数。如果你需要使用负数,需要使用 OGR 浮点类型。

使用例子

下面是一些使用 OGR 整数类型的例子:


from osgeo import ogr

# 创建 OGR 8 位整数类型
int8_type = ogr.OFTInteger8

# 创建 OGR 16 位整数类型
int16_type = ogr.OFTInteger16

# 创建 OGR 32 位整数类型
int32_type = ogr.OFTInteger32

# 创建 OGR 64 位整数类型
int64_type = ogr.OFTInteger64

# 使用 OGR 8 位整数类型创建字段定义
int8_field_defn = ogr.FieldDefn("Int8Field", int8_type)

# 使用 OGR 16 位整数类型创建字段定义
int16_field_defn = ogr.FieldDefn("Int16Field", int16_type)

# 使用 OGR 32 位整数类型创建字段定义
int32_field_defn = ogr.FieldDefn("Int32Field", int32_type)

# 使用 OGR 64 位整数类型创建字段定义
int64_field_defn = ogr.FieldDefn("Int64Field", int64_type)

注意,在使用 OGR 整数类型时,你需要导入 ogr 模块,并使用 ogr.OFTInteger8、ogr.OFTInteger16、ogr.OFTInteger32 或 ogr.OFTInteger64 来创建 OGR 整数类型。