b'从 ANSI 1252 重新编码为 UTF-8 失败,并出现错误:“参数无效”。'巨熊猫 蟒蛇

2024-06-20

我正在尝试将 shapefile 读入 GeoDataFrame。

通常我只是这样做并且它有效:

import pandas as pd

import geopandas as gpd
from shapely.geometry import Point

df = gpd.read_file("wild_fires/nbac_2016_r2_20170707_1114.shp")

但这一次它给了我错误:b'Recode from ANSI 1252 to UTF-8 failed with the error: "Invalid argument".'

完整错误:

---------------------------------------------------------------------------
CPLE_AppDefinedError                      Traceback (most recent call last)
<ipython-input-14-adcad0275d30> in <module>()
----> 1 df_wildfires_2016 = gpd.read_file("wild_fires/nbac_2016_r2_20170707_1114.shp")

/usr/local/lib/python3.6/site-packages/geopandas/io/file.py in read_file(filename, **kwargs)
     19     """
     20     bbox = kwargs.pop('bbox', None)
---> 21     with fiona.open(filename, **kwargs) as f:
     22         crs = f.crs
     23         if bbox is not None:

/usr/local/lib/python3.6/site-packages/fiona/__init__.py in open(path, mode, driver, schema, crs, encoding, layer, vfs, enabled_drivers, crs_wkt)
    163         c = Collection(path, mode, driver=driver, encoding=encoding,
    164                        layer=layer, vsi=vsi, archive=archive,
--> 165                        enabled_drivers=enabled_drivers)
    166     elif mode == 'w':
    167         if schema:

/usr/local/lib/python3.6/site-packages/fiona/collection.py in __init__(self, path, mode, driver, schema, crs, encoding, layer, vsi, archive, enabled_drivers, crs_wkt, **kwargs)
    151             if self.mode == 'r':
    152                 self.session = Session()
--> 153                 self.session.start(self)
    154             elif self.mode in ('a', 'w'):
    155                 self.session = WritingSession()

fiona/ogrext.pyx in fiona.ogrext.Session.start (fiona/ogrext2.c:8432)()

fiona/_err.pyx in fiona._err.GDALErrCtxManager.__exit__ (fiona/_err.c:1861)()

CPLE_AppDefinedError: b'Recode from ANSI 1252 to UTF-8 failed with the error: "Invalid argument".'

我一直试图找出为什么会出现错误一段时间,但似乎找不到答案。

数据是从这个网页获得的,我只下载了2016年的链接:http://cwfis.cfs.nrcan.gc.ca/datamart/download/nbac?token=78e9bd6af67f71204e18cb6fa4e47515 http://cwfis.cfs.nrcan.gc.ca/datamart/download/nbac?token=78e9bd6af67f71204e18cb6fa4e47515

有人能帮助我吗?谢谢。


似乎您的 shapefile 包含非 UTF 字符,导致Fiona.open()调用失败(geopandas 使用 Fiona 打开文件)。

我解决此错误的方法是打开 Shapefile(例如 QGis),然后选择save as,并指定Encoding选项为“UTF-8”:

执行此操作后,调用时没有出现错误df = gpd.read_file("convertedShape.shp").


另一种无需使用 QGis 或类似工具即可完成此操作的方法是再次读取并保存您的 Shapefile(有效地转换为所需的格式)。使用 OGR 你可以做这样的事情:

from osgeo import ogr

driver = ogr.GetDriverByName("ESRI Shapefile")
ds = driver.Open("nbac_2016_r2_20170707_1114.shp", 0) #open your shapefile
#get its layer
layer = ds.GetLayer()

#create new shapefile to convert
ds2 = driver.CreateDataSource('convertedShape.shp')
#create a Polygon layer, as the one your Shapefile has
layer2 = ds2.CreateLayer('', None, ogr.wkbPolygon)
#iterate over all features of your original shapefile
for feature in layer:
   #and create a new feature on your converted shapefile with those features
   layer2.CreateFeature(feature)

ds = layer = ds2 = layer2 = None

这也使得能够成功打开df = gpd.read_file("convertedShape.shp")转换后。希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

b'从 ANSI 1252 重新编码为 UTF-8 失败,并出现错误:“参数无效”。'巨熊猫 蟒蛇 的相关文章

随机推荐

  • 为 Symfony 指定备用后备路径以查找捆绑包的树枝模板

    基本问题 如何让 symfony 在非标准目录中查找 最佳 自定义 Twig 模板来加载捆绑视图 Symfony 文档说默认情况下它会在两个位置查找覆盖 Twig 模板 http symfony com doc current book t
  • Objective-C UILabel 作为超链接

    我正在尝试做一个UILabel一个链接UIWebView 我怎样才能做一个UILabel作为超链接 您可以使用 UITapGestureRecognizer 它将实现与您想要的类似的功能 UILabel myLabel UILabel al
  • 使用 BNB 从合约购买代币时出现问题

    我正在创建这个智能合约 它创建所有代币并将其添加到我的钱包中 然后我将钱包中的所有代币发送到我的合约中 然而 当我从另一个钱包向合约发送 BNB 时 我希望他返回我合约中的一些代币 当我这样做时 传输失败并发送以下错误消息 警告 合约执行过
  • 安装后许可证过期 Microsoft Visual Studio 2015 社区

    我刚刚安装了 Microsoft Visual Studio 2015 Community 安装后登录时出现错误 许可证 预发行许可证 该许可证已过期 我什么都做不了 有人可以帮助我吗 我今天从以下位置下载了安装程序 https www v
  • JavaScript/JQuery:$(window).resize 如何在调整大小完成后触发?

    我这样使用 JQuery window resize function 然而 如果用户通过拖动窗口边缘使其更大 更小来手动调整浏览器窗口的大小 resize上面的事件会多次触发 问题 如何在浏览器窗口调整大小完成后调用函数 以便事件仅触发一
  • 错误优化器参数在 Keras 函数中不合法

    我使用以下代码来计算数据生成质量指标的拟合优度研究的概率标签 from sklearn model selection import StratifiedKFold from sklearn model selection import K
  • 在 Vista 上调用 RPC 时出现“不支持操作”

    我的应用程序使用 Microsoft RPC 进行进程间通信 当两个进程在同一台机器上运行并且一个进程尝试调用声明为 IDL 表示法 的方法时 error status t rpcMethod in pipe byte parameter
  • 为什么我看不到 API 兼容性级别的 .Net 4.6 选项?

    我是 Unity 新手 我想使用最新版本的 Net 似乎 Net 版本最近才升级到 Net 4 6 如本博客文章中所述 https forum unity3d com threads upgraded mono net in editor
  • 如何在 Lua-C API 5.2 中创建类对象?

    我正在使用 Lua 封装 C 函数 使用 Lua 5 2 的 Lua C API include
  • 两个 OnClick 事件重叠

    我在元素内有一个元素 当我单击下面的元素时 我希望打开滑块 当我单击最外面的元素时 我希望滑块关闭 不幸的是 当我单击最外面的元素时 它也会单击下面的元素 有没有办法只单击最外面的元素而忽略下面元素的单击 这些事件在单击时触发并使用 Jav
  • Firebase 托管部署失败

    Running firebase deploy在给我一个超时错误之前会运行几分钟Error ESOCKETTIMEDOUT 我之前已经成功部署了多次 除了项目的前端 用 React 编写 之外 没有更改任何内容 我有一个单独的文件夹 其中包
  • 将图像保存在相机胶卷中并获取资源 URL

    对于我正在开发的应用程序 我使用 UIImagePickerController 拍摄照片并将其存储在相机胶卷中 void imagePickerController UIImagePickerController picker didFi
  • MAMP Pro 3“安装失败。”

    我刚刚购买了 MAMP Pro 3 的升级版 下载了文件 MAMP MAMP PRO 3 0 5 pkg 并继续安装 不幸的是 经过三次尝试 我无法完成安装 文件被写入 最后我收到一条错误消息 安装失败 安装程序遇到错误 导致安装失败 请联
  • 高度并行化的Levenshtein距离算法

    实际上 我必须实现一个字符串比较 最后得到匹配百分比 不仅仅是布尔结果匹配 不匹配 为此 我找到了 Levenstein 距离算法 但现在的问题是性能 例如 我有 1k 个字符串需要相互比较 现在大约需要 10 分钟 对于每个算法 我已经并
  • 从动态 Java 类路径导入 Java 类时出现 Matlab 编译器 MCC 错误

    我怎样才能得到mcc识别来自用户提供的 Java 库的导入 还是简单地忽略无法解析的导入 我有一个使用 Matlab 编译器构建的 Matlab 代码库 但构建正在中断 因为mcc遇到的时候会报错importMatlab 动态类路径上的 J
  • 从 readFile 返回未定义[重复]

    这个问题在这里已经有答案了 我正在尝试让以下代码工作 use strict var fs require fs var fileName readme txt var str fs readFile fileName utf8 functi
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • 使用 ANTLR4 识别单行中的多行注释

    我想用 ANTLR4 解析 PostScript 代码 我完成了语法 但是一种特定的语言扩展 由其他人引入 很难被识别 一个简短的例子 1 This is a line comment 2 The next line just pushes
  • b'从 ANSI 1252 重新编码为 UTF-8 失败,并出现错误:“参数无效”。'巨熊猫 蟒蛇

    我正在尝试将 shapefile 读入 GeoDataFrame 通常我只是这样做并且它有效 import pandas as pd import geopandas as gpd from shapely geometry import