GISutil.createJPEG(mxdPath, outputPath, outTIFPath, issue, cycle)
###################下面代码新建文件命名为 GISutil ###############
# -*- coding: utf-8 -*-
import arcpy
import os,sys
import datetime
import time
from arcpy import env
from arcpy.sa import *
import arcpy.mapping as mapping
import string
from _server_admin.utils import date
def outpathCheck(outPath):
try:
if outPath[-1]=="\\" or outPath[-1]=="/":
outPath=outPath
else:
outPath=outPath+"\\"
if not os.path.exists(outPath):
os.makedirs(outPath)
except Exception,ex:
print Exception,":",ex
return False
else:
return outPath
''' 遍历分割文件目录,对栅格数据进行剪裁,
参数一:栅格数据位置
参数二:分割文件的文件路径
参数三:输出路径
参数四:期号
'''
def SplitRaster(sourceData,splitPath,outPath,strTime,period):
#测试ID
#proID="4028813442b61acd0142b6200e6f0002"
arcpy.env.overwriteOutput =True
arcpy.CheckOutExtension("spatial")
env.workspace = splitPath
short_name=sourceData.split("\\")[-1].split(".")[0]
fcList =arcpy.ListFeatureClasses()
arcpy.AddMessage(fcList)
for fc in fcList:
outputPath=CreateProductPath(strTime,outPath,os.path.splitext(fc)[0],period)
#outputPath= outputPath.encode('gbk').decode('utf-8')
if outputPath[-1] == "\\":
# Execute ExtractByMask
outExtractByMask = ExtractByMask(sourceData, fc)
# Save the output
out_name = outputPath +"\\"+short_name + "_" + os.path.splitext(fc)[0] +".tif"
outExtractByMask.save(out_name)
#arcpy.gp.ExtractByMask_sa(sourceData, fc,outputPath+ strTime+".img")
arcpy.AddMessage( out_name +" OK")
else:
# Execute ExtractByMask
outExtractByMask = ExtractByMask(sourceData, fc)
# Save the output
out_name = outputPath +"\\"+short_name + "_" + os.path.splitext(fc)[0] +".tif"
outExtractByMask.save(out_name)
#arcpy.gp.ExtractByMask_sa(sourceData, fc,outputPath+"\\"+ strTime+".img")
arcpy.AddMessage( out_name +" OK")
#dissolve实现
def shpDissolve(inFeatures,dissolveFields):
# Set local variables
outFeatureClass = "C:/temp/fcs_dissolved" + str(int(time.time()))+".shp"
# Execute Dissolve
arcpy.Dissolve_management(inFeatures, outFeatureClass, dissolveFields, "",
"SINGLE_PART", "DISSOLVE_LINES")
return outFeatureClass
#消除破碎多边形
def shpEliminate(inFeatures,expression):
# Set local variables
inFeatures = inFeatures
tempLayer = "c:\\temp\\eliminate_temp" + str(int(time.time()))+".shp"
expression = '"F_AREA" < 200*1000000 and "GRIDCODE" = 0 '
eliminate_polygons = "C:\\temp\\eliminate" + str(int(time.time()))+".shp"
#exclusionExpression = '"OBJECTID" = 9'
# Execute MakeFeatureLayer
arcpy.MakeFeatureLayer_management(inFeatures, tempLayer)
# Execute SelectLayerByAttribute to define features to be eliminated
arcpy.SelectLayerByAttribute_management(tempLayer, "NEW_SELECTION", expression)
# Execute Eliminate
arcpy.Eliminate_management(tempLayer, eliminate_polygons, "AREA")
arcpy.AddMessage( "cal Eliminate_management OK")
data_type=""
# Execute Delete
arcpy.Delete_management(tempLayer, data_type)
return eliminate_polygons
#根据表达式删除属性表中纪录
def delByExp(inData,expression):
if not arcpy.Exists(inData):
return;
try:
tempTableView = "tempTableView"
arcpy.MakeTableView_management(inData, tempTableView)
arcpy.SelectLayerByAttribute_management (tempTableView, "NEW_SELECTION", expression)
if int(arcpy.GetCount_management(tempTableView).getOutput(0)) > 0:
arcpy.DeleteRows_management(tempTableView)
except Exception as err:
print(err.args[0])
#存储shp到gdb中
def shp2gdb(shpPath,gdbPath,layerName):
try:
arcpy.env.overwriteOutput =True
arcpy.CheckOutExtension("spatial")
gdbFolderPath = os.path.split(gdbPath)[0]
gdbName = os.path.split(gdbPath)[1]
dstFeaturePath =gdbPath+"\\"+layerName
if not arcpy.Exists(gdbPath):
arcpy.CreateFileGDB_management(gdbFolderPath,gdbName)
print gdbPath+" CreateFileGDB_management ok"
arcpy.CopyFeatures_management(shpPath,dstFeaturePath,"", "0", "0", "0")
arcpy.AddMessage( "Append OK")
else:
if not arcpy.Exists(dstFeaturePath):
arcpy.CopyFeatures_management(shpPath,dstFeaturePath,"", "0", "0", "0")
print dstFeaturePath+" CopyFeatures_management ok"
arcpy.AddMessage( "Append OK")
else:
arcpy.Append_management(shpPath, dstFeaturePath, "NO_TEST", "", "")
arcpy.AddMessage( "Append OK")
print("shp2gdb OK")
except Exception,e:
arcpy.AddError(e.message)
#mxd导出为jpg
def mxd2jpg(MxdPath,strTime,picPath):
#替换工作目录,保证mxd能够打开
#ReplaceWorkspace(mxdPath,srcDataPath,outputPath,outMxdPath)
ChangeTitle(MxdPath,strTime)
#导出图片,现在只支持.jpg格式
ExportMap(MxdPath,picPath)
print "Export Map OK"
#将mxd导出为图片
def ExportMap(mxdPath,picPath):
if not os.path.exists(mxdPath):
return
mxd = mapping.MapDocument(mxdPath)
mapping.ExportToJPEG(mxd,picPath)
del mxd
#复制mxd目录下文件
def CopyFiles(sourceDir, targetDir):
arcpy.AddMessage( targetDir)
if not os.path.exists(targetDir):
os.makedirs(targetDir)
arcpy.AddMessage(targetDir)
if not os.path.exists(sourceDir):
return
for file in os.listdir(sourceDir):
sourceFile = os.path.join(sourceDir,file)
targetFile = os.path.join(targetDir,file)
if os.path.isfile(sourceFile):
if not os.path.exists(targetDir):
os.makedirs(targetDir)
if not os.path.exists(targetFile) or(os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(sourceFile))):
if not os.path.splitext(sourceFile)[1] == '.mxd' and not sourceFile[-5:]=='.lock' :
open(targetFile, "wb").write(open(sourceFile, "rb").read())
if os.path.isdir(sourceFile):
First_Directory = False
CopyFiles(sourceFile, targetFile)
#替换mxd工程的工作空间'''
def ReplaceWorkspace(mxdPath,srcWorkspace, dstWorkspace,dstMxdPath,lyrRasterName):
if not os.path.exists(mxdPath):
return
mxdBasePath = os.path.split(dstMxdPath)[0]
mxdname = os.path.split(dstMxdPath)[1]
#lyrname = mxdname.split('.')[0]
if not os.path.exists(mxdBasePath):
os.makedirs(mxdBasePath)
mxd = arcpy.mapping.MapDocument(mxdPath)
mxd.findAndReplaceWorkspacePaths(srcWorkspace,dstWorkspace)
for lyr in arcpy.mapping.ListBrokenDataSources(mxd):
if lyr.supports("DATASOURCE") :
#修改矢量数据源
#lyr.replaceDataSource( dstWorkspace,"SHAPEFILE_WORKSPACE",lyrRasterName)
#修改栅格数据源
lyr.replaceDataSource( dstWorkspace,"RASTER_WORKSPACE",lyrRasterName)
mxd.saveACopy(dstMxdPath)
del mxd
def Time2Str(strTime):
day = string.atoi(strTime[6:8])
strXun =""
if day <11 :
strXun =u"上"
elif day<21:
strXun =u"中"
else:
strXun = u"下"
return strXun
def ChangeTitle(mxdPath,strTime):
if not os.path.exists(mxdPath):
return
mxd = arcpy.mapping.MapDocument(mxdPath)
for textElement in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if textElement.name == "title" or textElement.name == "date":
txt =textElement.text
txt = txt.replace("yyyy",strTime[0:4])
txt = txt.replace("MM",strTime[4:6])
txt = txt.replace("dd",strTime[6:8])
txt = txt.replace("XX",Time2Str(strTime))
txt = txt.replace("HH",strTime[8:10])
textElement.text = txt
mxd.save()
del mxd
def getAllNames(Path):
nameList={'lyrRasterName':'',
'lyrRasterName':'',
'jpgName':'',
'excelName':'',
'txtName':''
}
fileList = os.listdir(Path)
for file in fileList:
if file.endswith('.tif'):
nameList['lyrRasterName'] = file #栅格文件名
nameList['lyrShpName'] = file.replace(file[0:10], file[0:9]+'V').replace('tif','shp') #shp图
nameList['jpgName'] = file.replace(file[0:10], file[0:9]+'Z').replace('tif','jpg') #专题图
nameList['excelName'] = file.replace(file[0:10], file[0:9]+'S').replace('tif','xls') #统计excel
nameList['txtName'] = file.replace(file[0:10], file[0:9]+'T').replace('tif','txt') #txt
return nameList
'''
全省mxd路径,被拆分数据 ,拆分文件夹,输出根目录,时间
'''
def DistributeProduct(mxdPath, sourceData,splitPath,RootPath,strTime,period):
try:
arcpy.env.overwriteOutput =True
arcpy.CheckOutExtension("spatial")
env.workspace = splitPath
fcList =arcpy.ListFeatureClasses()
oldRegionID =u"QHS"
for fc in fcList:
regionID =fc.split(".")[0]
mxdPath =mxdPath.replace(oldRegionID,regionID)
oldRegionID=regionID
mxdName = os.path.split(mxdPath)[1]
arcpy.AddMessage(mxdName)
outputPath=CreateProductPath(strTime,RootPath,regionID,period)
#栅格图层名(如牧草产量栅格)
allName = getAllNames(outputPath)
lyrRasterName = allName.get('lyrRasterName')
if lyrRasterName =="" :
break
srcDataPath = os.path.split(mxdPath)[0]
outMxdPath=os.path.join(outputPath,mxdName)
#按行政区拆分shp数据,业务图层
shpName=allName.get('lyrShpName')
outShpPath =os.path.join(outputPath,shpName)
arcpy.Clip_analysis(sourceData, fc,outShpPath)
arcpy.AddMessage("clip OK")
#复制源mxd目录下数据到目标目录下,以供下载,
arcpy.AddMessage(srcDataPath+outputPath)
CopyFiles(srcDataPath,outputPath)
arcpy.AddMessage(" Copy Files OK")
#替换工作目录,保证mxd能够打开
ReplaceWorkspace(mxdPath,srcDataPath,outputPath,outMxdPath,lyrRasterName)
ChangeTitle(outMxdPath,strTime)
arcpy.AddMessage("Replace Workspace OK")
#导出图片jpg格式
jpgName=allName.get('jpgName')
outPicPath =os.path.join( outputPath,jpgName)
ExportMap(outMxdPath,outPicPath)
arcpy.AddMessage("Export Map OK")
except Exception,e:
arcpy.AddError(e.message)
return
# 直接使用datetime的格式转换功能得到结果
def converse_mod13q1_time_format(year, month, day,hh):
date = datetime.date(year, month, day)
date_str = date.strftime('%j')
mod13q1_product_day = int(date_str)
return mod13q1_product_day
def converse_day_to_time(year, day):
fir_day = datetime.datetime(year,1,1)
zone = datetime.timedelta(days=day-1)
return datetime.datetime.strftime(fir_day + zone, "%Y%m%d")
# 判断是上半月还是下半月
def convrse_mod13q1_day_to_half_month(day):
product_month = day/32 + 1
if day%16 == 0:
if (day/16)%2 == 0:
product_month_label = u"上"
else:
product_month_label = u"下"
else:
product_month_label = ''
return [product_month, product_month_label]
def changeTitleTxt(textElement,rasterFileName,region,strTime,cycle):
year = int(strTime[0:4])
month = int(strTime[4:6])
day = int(strTime[6:8])
hh = int(strTime[8:10])
#product_day = converse_mod13q1_time_format(year, month, day,hh)
# product_day += 15
# strTime2 = converse_day_to_time(year, product_day)
# year2 = int(strTime2[0:4])
# month2 = int(strTime2[4:6])
# day2 = int(strTime2[6:8])
print(textElement.name)
if textElement.name == "COOH" and cycle == "COOH":
inTxt = textElement.text
inTxt = inTxt.replace("yyyy", strTime[0:4])
inTxt = inTxt.replace("MM", strTime[4:6])
inTxt = inTxt.replace("dd", strTime[6:8])
inTxt = inTxt.replace("hh", strTime[8:10])
inTxt = inTxt.replace("mm", strTime[10:12])
textElement.text = inTxt
elif textElement.name == "COAM" and cycle == "COAM":
inTxt = textElement.text
inTxt = inTxt.replace("yyyy", strTime[0:4])
inTxt = inTxt.replace("MM", strTime[4:6])
textElement.text = inTxt
elif textElement.name == "COAQ" and cycle == "COAQ":
inTxt = textElement.text
inTxt = inTxt.replace("yyyy", strTime[0:4])
num = int(strTime[4:6]) // 4 + 1
print num
inTxt = inTxt.replace("dd", num + '')
textElement.text = inTxt
elif textElement.name == "COAY" and cycle == "COAY":
inTxt = textElement.text
inTxt = inTxt.replace("yyyy", strTime[0:4])
textElement.text = inTxt
elif textElement.name == 'COOD' and cycle == "COOD":
inTxt = textElement.text
inTxt = inTxt.replace("yyyy", strTime[0:4])
inTxt = inTxt.replace("MM", strTime[4:6])
inTxt = inTxt.replace("dd", strTime[6:8])
textElement.text = inTxt
#print 'is not title or date'
#专题图生成并导出
def exportJPEG(mxdPath,outpath,rasterPath,issue,cycle):
dstWorkspace = os.path.dirname(rasterPath)
lyrRasterName = os.path.basename(rasterPath)
print rasterPath
mxd = arcpy.mapping.MapDocument(mxdPath)
for lyr in arcpy.mapping.ListBrokenDataSources(mxd):
if lyr.supports("DATASOURCE") :
fileType = lyrRasterName.split(".")[1].lower()
if ((fileType == 'shp')):
#修改矢量数据源
lyrShpName = os.path.basename(rasterPath)[:-4]
lyr.replaceDataSource( dstWorkspace,"SHAPEFILE_WORKSPACE",lyrShpName)
if ((fileType == 'tif')):
#修改栅格数据源
lyr.replaceDataSource( dstWorkspace,"RASTER_WORKSPACE",lyrRasterName)
#lyr.replaceDataSource( dstWorkspace,"RASTER_WORKSPACE",lyrfirstname)
for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):
mxd.dataDrivenPages.currentPageID = pageNum
if mxdPath.find('sheng') != -1 :
region = "河北省"
regionCode = "130000000000"
elif mxdPath.find('shi') != -1:
region = mxd.dataDrivenPages.pageRow.CNAME
#print region
regionCode = mxd.dataDrivenPages.pageRow.CID
#print regionCode
elif mxdPath.find('xian')!= -1 :
region = mxd.dataDrivenPages.pageRow.Xname
regionCode = mxd.dataDrivenPages.pageRow.XID
else :
arcpy.AddMessage("There is no map template")
#修改标题
for textElement in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
changeTitleTxt(textElement,lyrRasterName,region,issue,cycle)
#获取文件名和路径
file_old = os.path.basename(rasterPath)
print file_old
file_Type = file_old.split(".")[1].lower()
if ((file_Type == 'shp')):
file = file_old.replace(file_old[0:10], file_old[0:9]+'Z').replace('shp','png') #专题图
filePath = outpath + "\\" + file
elif((file_Type == 'tif')):
file = file_old.split('.')[0] + "_" + regionCode + "." + file_old.split('.')[1]
#file = file.replace('RCUR', 'ZCUR').replace('tif','png') #专题图
file = file.replace('tif', 'png') # 专题图
#file = file.replace('tif','jpg')
regionPath = outpath + "\\" + regionCode
if not os.path.exists(regionPath):
os.makedirs(regionPath)
filePath = regionPath + "\\" + file
print filePath
#导出专题图
print "Exporting page {0} of {1}".format(str(mxd.dataDrivenPages.currentPageID), str(mxd.dataDrivenPages.pageCount))
arcpy.mapping.ExportToPNG(mxd, filePath)
del mxd
#根据专题图模板生成省市县三级专题图
def createJPEG(sourceDir,outpath,rasterPath,issue,cycle):
#1.遍历模板文件夹,获取mxd
if not os.path.exists(sourceDir):
return
mxdList = ['']
for file in os.listdir(sourceDir):
sourceFile = os.path.join(sourceDir,file)
if os.path.isfile(sourceFile):
if os.path.splitext(sourceFile)[1] == '.mxd':
if string.find(sourceFile,cycle) == -1:
continue
mxdList.append(sourceFile)
if len(mxdList) <=1 :
print sourceDir+'has no mxd files'
sys.exit()
#2.根据专题图模板生成jpg
for mxdPath in mxdList:
if mxdPath !='' :
exportJPEG(mxdPath,outpath,rasterPath,issue,cycle)
'''
全省mxd路径,被拆分数据 ,拆分文件夹,输出根目录,时间
'''
def splitProductAll(sourceData,rasterData,splitPath,RootPath,strTime,period):
try:
arcpy.env.overwriteOutput =True
arcpy.CheckOutExtension("spatial")
env.workspace = splitPath
fcList =arcpy.ListFeatureClasses()
for fc in fcList:
regionID =fc.split(".")[0]
outputPath=CreateProductPath(strTime,RootPath,regionID,period)
allName = getAllNames(RootPath)
#矢量数据裁剪
shpName = allName.get('lyrShpName')[:-4]+'_'+regionID+'.shp'
outShpPath =os.path.join(outputPath,shpName)
arcpy.Clip_analysis(sourceData, fc,outShpPath)
#栅格数据裁剪
rasterName = allName.get('lyrRasterName')[:-4]+'_'+regionID+'.tif'
outRasterPath = os.path.join(outputPath,rasterName)
tifExtractByMask = ExtractByMask (rasterData, fc)
tifExtractByMask.save(outRasterPath)
arcpy.AddMessage(regionID+ " clip OK")
except Exception,e:
arcpy.AddError(e.message)
return
'''
全省mxd路径,被拆分数据 ,拆分文件夹,输出根目录,时间
'''
def splitProduct(mxdPath, sourceData,splitPath,RootPath,strTime,period):
try:
arcpy.env.overwriteOutput =True
arcpy.CheckOutExtension("spatial")
env.workspace = splitPath
fcList =arcpy.ListFeatureClasses()
oldRegionID =u"LNS"
for fc in fcList:
regionID =fc.split(".")[0]
mxdPath =mxdPath.replace(oldRegionID,regionID)
oldRegionID=regionID
mxdName = os.path.split(mxdPath)[1]
arcpy.AddMessage(mxdName)
outputPath=CreateProductPath(strTime,RootPath,regionID,period)
#栅格图层名(如牧草产量栅格)
allName = getAllNames(outputPath)
lyrRasterName = allName.get('lyrRasterName')
if lyrRasterName =="" :
break
srcDataPath = os.path.split(mxdPath)[0]
outMxdPath=os.path.join(outputPath,mxdName)
#按行政区拆分shp数据,业务图层
shpName=allName.get('lyrShpName')
outShpPath =os.path.join(outputPath,shpName)
arcpy.Clip_analysis(sourceData, fc,outShpPath)
arcpy.AddMessage("clip OK")
#复制源mxd目录下数据到目标目录下,以供下载
#1.遍历模板文件夹,复制mxd和shp到临时目录
#2.临时目录中,更新栅格数据源
#3.修改标题、日期等
#4.拼路径和文件名,输出专题图
#===================================================================
# arcpy.AddMessage(srcDataPath+outputPath)
# CopyFiles(srcDataPath,outputPath)
# arcpy.AddMessage(" Copy Files OK")
#
# #替换工作目录,保证mxd能够打开
# ReplaceWorkspace(mxdPath,srcDataPath,outputPath,outMxdPath,lyrRasterName)
# ChangeTitle(outMxdPath,strTime)
# arcpy.AddMessage("Replace Workspace OK")
#
# #导出图片jpg格式
# jpgName=allName.get('jpgName')
# outPicPath =os.path.join( outputPath,jpgName)
# ExportMap(outMxdPath,outPicPath)
# arcpy.AddMessage("Export Map OK")
#===================================================================
except Exception,e:
arcpy.AddError(e.message)
return
''' 用于对栅格数据进行剪裁,
参数一:栅格数据位置
参数二:分割文件的文件路径
参数三:输出路径'''
def SplitRasterProduct(sourceData,splitPath,RootPath,strTime=time.strftime(u"%Y%m%d%H",time.localtime()),proID="4028813442b61acd0142b6200e6f0002"):
#测试ID
#proID="4028813442b61acd0142b6200e6f0002"
arcpy.env.overwriteOutput =True
arcpy.CheckOutExtension("spatial")
env.workspace = splitPath
productType=sourceData.split("\\")[-1].split(".")[0]
fcList =arcpy.ListFeatureClasses()
for fc in fcList:
outputPath=CreateProductPath(strTime,RootPath,os.path.splitext(fc)[0])
#outputPath= outputPath.encode('gbk').decode('utf-8')
if outputPath[-1] == "\\":
arcpy.gp.ExtractByMask_sa(sourceData, fc,outputPath+ strTime+".img")
#Insert2ProductDB(os.path.splitext(fc)[0],proID,strTime,outputPath+ strTime+".img","","")
arcpy.AddMessage( outputPath+os.path.splitext(fc)[0] +"_"+ strTime+".img" +" OK")
else:
arcpy.gp.ExtractByMask_sa(sourceData, fc,outputPath+"\\"+ strTime+".img")
#Insert2ProductDB(os.path.splitext(fc)[0],proID,strTime,outputPath+"\\"+ strTime+".img","","")
arcpy.AddMessage( outputPath+os.path.splitext(fc)[0] +"_"+ strTime+".img" +" OK")
return True
''' 用于对矢量数据进行剪裁,
参数一:矢量数据位置
参数二:分割文件的文件路径
参数三:输出路径'''
def SplitVectorProduct(sourceData,splitPath,RootPath,strTime,period):
arcpy.env.overwriteOutput =True
arcpy.CheckOutExtension("spatial")
env.workspace = splitPath
productType=sourceData.split("\\")[-1].split(".")[0]
fcList =arcpy.ListFeatureClasses()
for fc in fcList:
outputPath=CreateProductPath(strTime,RootPath,os.path.splitext(fc)[0],period)
if not outputPath[-1] == "\\":
outputPath =outputPath+"\\"
arcpy.Clip_analysis(sourceData, fc,outputPath+ strTime+".shp","")
arcpy.AddMessage( outputPath+ strTime+".shp"+" OK")
return True
'''
创建产品路径
strTime:产品时间,格式为yyyymmddhh24
RootPath:产品根目录
RegionID:行政编码
period:产品周期
创建的目录不已 "\\" 结尾
'''
def CreateProductPath(strTime,RootPath,RegionID,period):
if RootPath[-1] =="\\" or RootPath[-1]=="/":
productRootPath =str(RootPath)+"\\"+RegionID
else:
productRootPath =str(RootPath) +"\\"+ "\\"+RegionID
if not os.path.exists(productRootPath):
os.makedirs(productRootPath)
return productRootPath
def DataStatis(rec_img,idtentityData,strTime,dstDBSource):
if not os.path.exists("c:\\temp"):
os.makedirs("c:\\temp")
R2V="c:\\temp\\r2v.shp"
identityResult="c:\\temp\\identity.shp"
areaShp="c:\\temp\\areashp.shp"
#转为polygon
arcpy.RasterToPolygon_conversion(rec_img, R2V, "NO_SIMPLIFY", "VALUE")
arcpy.AddMessage( "Convert2Polygon OK")
#做identity
arcpy.Identity_analysis(R2V, idtentityData, identityResult, "ALL", "", "NO_RELATIONSHIPS")
arcpy.AddMessage( "Identity OK")
arcpy.CalculateAreas_stats(identityResult,areaShp)
arcpy.AddMessage( "calculate area OK")
arcpy.AddField_management(areaShp, "ProTime", "TEXT", "", "", "12", "", "NON_NULLABLE", "NON_REQUIRED", "")
arcpy.AddMessage( "Add Field OK")
arcpy.CalculateField_management(areaShp, "ProTime", strTime, "PYTHON", "")
arcpy.AddMessage( "cal product ID OK")
if arcpy.Exists(dstDBSource):
arcpy.Append_management(areaShp, dstDBSource, "TEST", "", "")
else:
arcpy.AddMessage(u"目标数据库不存在!")
if __name__ == '__main__':
#mxd存放根目录默认为d:\\gptools\\mxd
mxdRootPath=arcpy.GetParameterAsText(0)
sourceData = arcpy.GetParameterAsText(1)
splitPath =arcpy.GetParameterAsText(2)
rootPath= arcpy.GetParameterAsText(3)
strTime =arcpy.GetParameterAsText(4)
if strTime =="" or strTime =="NONE":
strTime =time.strftime(u"%Y%m%d%H",time.localtime())
#mxdRootPath=u"D:\\GPTOOLS\\mxd\\150000\\11.mxd"
#sourceData = r"D:\GPTOOLS\scratch\sdf1.shp"
#splitPath =r"D:\GPTOOLS\ToolData\xzj"
#rootPath=r"D:\GPTOOLS\Result\FireRating"
#strTime="20141010"
DistributeProduct(mxdRootPath,sourceData,splitPath,rootPath,strTime)