Multiprocessing - Point Solar Radiation

المشرف العام

Administrator
طاقم الإدارة
I need help getting to work with point solar radiation and multiprocessing. I want to calculate solar radiation with all values from list (transmittivity, diffuse_Prop) by for loop.

import arcpy, multiprocessingfrom arcpy import envfrom multiprocessing import Pool, Lockimport numpyenv.overwriteOutput = Trueworkspace = r"D:\\workspace"temp_directory = r"D:\\workspace"outDir = r"D:\\folder"inRaster = r"D:\\nmpt.tif"inPntFC = r"D:\\observer.shp"latitude = 51skySize = 400timeConfig = arcpy.sa.TimeWholeYear(2014)dayInterval = ''hourInterval = ''zFactor = 1calcDirections = ''zenithDivisions = ''azimuthDivisions = ''pref = "rad_"outDirectRad = ''outDiffuseRad = ''outDirectDur = ''diffuseProp = numpy.arange(0.1,1.1,0.1)transmittivity = numpy.arange(0.1,1.1,0.1)def p_s_rad(diffuseProp, transmittivity): outGlobalRad = arcpy.sa.PointsSolarRadiation(inRaster, inPntFC, "", latitude, skySize, timeConfig, dayInterval, hourInterval, "INTERVAL",zFactor, "FROM_DEM", calcDirections, zenithDivisions,azimuthDivisions,"STANDARD_OVERCAST_SKY", diffuseProp,transmittivity,outDirectRad,outDiffuseRad,outDirectDur) outGlobalRad.save(outDir+'//'+str(transmittivity*10)+'.shp')def funkcja(diffuseProp,transmittivity): for i,ii in zip(diffuseProp,transmittivity): p_s_rad(i,ii) print 'diff - {0} trans - {1}'.format(i,ii)if __name__=='__main__': lock = Lock() pool = Pool(processes=5) result = pool.map(funkcja(diffuseProp,transmittivity),[100]) result.get(timeout = 1) pool.close() pool.join()

أكثر...
 
أعلى