CPL_write_ogr在R中写入形状文件时出错

CPL_write_ogr在R中写入形状文件时出错,r,sf,R,Sf,我已经多次使用这个脚本,直到现在它仍然运行良好。我当前在尝试写出形状文件时出错。有谁能告诉我这个错误的含义吗?我输入的形状文件似乎是普通形状文件。此外,在我的代码中,我没有尝试创建对象字段 以下是我收到的错误: Writing layer MonroeMD14F0037_1' to data source N:\MonroeMD14F0037_1.shp' using driver ESRI Shapefile Creating field Ã_OBJECT failed.Error in

我已经多次使用这个脚本,直到现在它仍然运行良好。我当前在尝试写出形状文件时出错。有谁能告诉我这个错误的含义吗?我输入的形状文件似乎是普通形状文件。此外,在我的代码中,我没有尝试创建对象字段

以下是我收到的错误:

Writing layer MonroeMD14F0037_1' to data source N:\MonroeMD14F0037_1.shp' using driver ESRI Shapefile Creating field Ã_OBJECT failed.Error in CPL_write_ogr(obj, dsn, layer, driver, as.character(dataset_options),  : 


Layer creation failed.In addition: Warning message:In CPL_write_ogr(obj, dsn, layer, driver, as.character(dataset_options),  :GDAL Error 1: Failed to create field name 'Ã_OBJECT': cannot convert to ISO-8859-1

我不知道这是否有用,但你能试试
st_write(deermig.sp,paste(out.dir,migtimes$newUid[I],“u”,I,“.shp”,sep=”“),layer_options=“ENCODING=UTF-8”)

如果第一次成功,可以在选项中使用
overwrite=TRUE

st_write(deermig.sp, paste(out.dir, migtimes$newUid[i], 
 "_", i ,".shp", sep=""), overwrite=T) 
此错误(CPL_write_ogr)似乎与数据类型有关。我今天遇到了同样的问题,我刚刚解决了它。我发现我的对象不是sf或sfc,而是geometrycollection。你必须把它变成一个简单的(多)多边形,然后它才能工作

Simple feature collection with 1 feature and 4 fields
geometry type:  GEOMETRYCOLLECTION
dimension:      XY
bbox:           xmin: 486390.1 ymin: 6044675 xmax: 487045.9 ymax: 6045202
projected CRS:  WGS 84 / UTM zone 32N
通过使用以下命令从集合中提取sf多边形来创建sf多边形:

mydata2 <- st_collection_extract(mydata, "POLYGON")

我希望这有帮助

谢谢你的回复。我试了一下,发现了这样一个错误:“错误:无法猜出驱动程序…”我完全被难住了。啊,对不起,
,我是指你已经有过的争论,对不起,我的糟糕!也就是说:
st_write(deermig.sp,paste(out.dir,migtimes$newUid[i],“u”,i,“.shp”,sep=”“),layer_options=“ENCODING=UTF-8”)
。我会在上面更正。好的,谢谢你的澄清。仍然得到这个错误:“CPL_write_ogr(obj,dsn,layer,driver,as.character(dataset_选项)中的错误::write error”好的,该死的……不幸的是,我只是得到了这个想法,因为我无法复制这个问题。祝你好运,希望有一个解决方案!你能用
dput(head(deermig.sp,10))发布一个数据样本吗
?这可能有助于某人重现您的错误这似乎表明MonroeMD14F0037_1有一些命名奇怪的列(“对象”),无法用标准编码编写。您从
名称(deermig.sp)
名称(dermisg)中得到了什么。sp@data)
>名称(deermig.sp)[1]“对象”“CllrSrN”“DtYrAnJ”“UniquID”“Species”“Captrlc”“CaptrAr”“CollrID”“date”[10]“geometry”
>名称(deermig。sp@data)错误:试图从对象(类“sf”)获取插槽“数据”这不是一个S4对象
仍然无法理解它为什么要这样做。任何建议都会有帮助。我会尝试使用名称(deermig.sp)[1]修改第一列的名称,感谢您的响应。使用覆盖时,我会出现此错误:“在st_write.sf(deermig.sp,paste(out.dir,migtimes$newUid[I],”中出现错误,:无法识别的参数覆盖“
st_write(mydata2, "mydata2.shp")