如何在每个数据集名称的末尾附加“_projected.shp”
How to append "_projected.shp" at the end of each dataset name
我有一个代码可以将一个文件夹中的多个 shapefile 投影到另一个坐标系,并将投影的 shapefile 放置在另一个文件夹中。对于投影的 shapefile,我想在每个 shapefile 名称的末尾附加“_projected”。
我目前所做的工作是投影并将输出文件设置到特定文件夹中,但新的输出文件没有在末尾显示“_projected”。
这是我的代码
import arcpy
import os
arcpy.env.workspace = "inputdatafolder"
arcpy.env.overwriteOutput = True
outWorkspace = "outputdatafolder"
for infc in arcpy.ListFeatureClasses():
dsc = arcpy.Describe(infc)
if dsc.spatialReference.Name == "Unknown":
print ("skipped this fc due to undefined coordinate system: "+ infc)
else:
outfc = os.path.join(outWorkspace, infc)
outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 10N')
arcpy.Project_management(infc, outfc, outCS)
infc = infc.replace(".shp","_projected.shp")
由于代码有效,我没有收到任何错误。文件名没有替换为我想要的结尾。
您的代码正在替换 infc
文件路径的 文本,但实际上并未重命名文件。
此外,outfc
是您正在创建的新投影 shapefile 的路径,而 infc
是原始文件的路径。您不希望 outfc
具有 "_projected.shp"
后缀吗?
下面的代码在调用 arcpy.Project_management
创建新文件之前将输出文件路径的文本更改为包含 "_projected.shp"
。
import arcpy
import os
arcpy.env.workspace = "inputdatafolder"
arcpy.env.overwriteOutput = True
outWorkspace = "outputdatafolder"
for infc in arcpy.ListFeatureClasses():
dsc = arcpy.Describe(infc)
if dsc.spatialReference.Name == "Unknown":
print ("skipped this fc due to undefined coordinate system: "+ infc)
else:
outfc = os.path.join(outWorkspace, infc).replace(".shp","_projected.shp")
outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 10N')
arcpy.Project_management(infc, outfc, outCS)
我也不确定您是否正确使用 Describe
。构建文件路径时可能需要使用 infc.name
。
我有一个代码可以将一个文件夹中的多个 shapefile 投影到另一个坐标系,并将投影的 shapefile 放置在另一个文件夹中。对于投影的 shapefile,我想在每个 shapefile 名称的末尾附加“_projected”。
我目前所做的工作是投影并将输出文件设置到特定文件夹中,但新的输出文件没有在末尾显示“_projected”。
这是我的代码
import arcpy
import os
arcpy.env.workspace = "inputdatafolder"
arcpy.env.overwriteOutput = True
outWorkspace = "outputdatafolder"
for infc in arcpy.ListFeatureClasses():
dsc = arcpy.Describe(infc)
if dsc.spatialReference.Name == "Unknown":
print ("skipped this fc due to undefined coordinate system: "+ infc)
else:
outfc = os.path.join(outWorkspace, infc)
outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 10N')
arcpy.Project_management(infc, outfc, outCS)
infc = infc.replace(".shp","_projected.shp")
由于代码有效,我没有收到任何错误。文件名没有替换为我想要的结尾。
您的代码正在替换 infc
文件路径的 文本,但实际上并未重命名文件。
此外,outfc
是您正在创建的新投影 shapefile 的路径,而 infc
是原始文件的路径。您不希望 outfc
具有 "_projected.shp"
后缀吗?
下面的代码在调用 arcpy.Project_management
创建新文件之前将输出文件路径的文本更改为包含 "_projected.shp"
。
import arcpy
import os
arcpy.env.workspace = "inputdatafolder"
arcpy.env.overwriteOutput = True
outWorkspace = "outputdatafolder"
for infc in arcpy.ListFeatureClasses():
dsc = arcpy.Describe(infc)
if dsc.spatialReference.Name == "Unknown":
print ("skipped this fc due to undefined coordinate system: "+ infc)
else:
outfc = os.path.join(outWorkspace, infc).replace(".shp","_projected.shp")
outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 10N')
arcpy.Project_management(infc, outfc, outCS)
我也不确定您是否正确使用 Describe
。构建文件路径时可能需要使用 infc.name
。