如何使用python将.dbf转换为shapefile

时间:2011-02-18 12:22:31

标签: python gis arcmap

我一直在搜索互联网,试图找到一种pythonic(sp ?!)方式来处理这些数据。

我们每天都会收到.dbf格式的数据加载(希望如此) - 然后我们需要将这些数据保存为shapefile。

有没有人对我的流程有任何链接或建议?

4 个答案:

答案 0 :(得分:2)

要将文件的creation_date附加到其名称,您需要使用os.stat()获取创建日期,然后使用os.rename()重命名该文件。您可以使用date.strftime()格式化日期字符串。

import datetime, os

filename = 'original.ext'

fileinfo = os.stat(filename)
creation_date = datetime.date.fromtimestamp(fileinfo.st_ctime)

os.rename(filename, filename + '-' + creation_date.strftime('%Y-%m-%d'))

答案 1 :(得分:1)

脱离我的头顶:

import os
import datetime
myfile = "test.txt"
creationdate = os.stat(myfile).st_ctime
timestamp = datetime.datetime.fromtimestamp(creationdate)
datestr = datetime.datetime.strftime(timestamp, "%Y%m%d")
os.rename(myfile, os.path.splitext(myfile)[0] + datestr + os.path.splitext(myfile)[1])

test.txt重命名为test20110221.txt

答案 2 :(得分:0)

一直是模特建造者!

#   (generated by ArcGIS/ModelBuilder)
# Usage: DBF2SHAPEFILE <XY_Table> <Y_Field> <X_Field> <Output_Feature_Class>
# ---------------------------------------------------------------------------

# Import system modules
import sys, string, os, arcgisscripting, datetime

# Adds the creation date to all of the previous shapefiles in that folder
filename = 'D:/test.txt'
fileinfo = os.stat(filename)
creation_date = datetime.date.fromtimestamp(fileinfo.st_ctime)
os.rename(filename, filename + '-' + creation_date.strftime('%Y-%m-%d'))

# Create the Geoprocessor object
gp = arcgisscripting.create()

# Load required toolboxes...
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")

# Script arguments...
XY_Table = sys.argv[1]

Y_Field = sys.argv[2]

X_Field = sys.argv[3]

Output_Feature_Class = sys.argv[4]

# Local variables...
Layer_Name_or_Table_View = ""

# Process: Make XY Event Layer...
gp.MakeXYEventLayer_management(XY_Table, X_Field, Y_Field, Layer_Name_or_Table_View, "")

# Process: Copy Features...
gp.CopyFeatures_management(Layer_Name_or_Table_View, Output_Feature_Class, "", "0", "0", "0")

答案 3 :(得分:0)

如果您不想使用ArcGIS,可以使用OGR的python绑定或ogr2ogr utility通过子进程。您可以通过Windows批处理文件使用该实用程序,如果您有很多事情要做,这比为每个文件调用arc进程要快得多......

如您所知,这不是更改扩展名的问题,需要特定的格式。