• 大小: 6KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Python
  • 标签: Arcgis  Python  

资源简介

本人写的高斯空气扩散模型,对于了解arcgis 编写Python 模型的有一定的帮助。

资源截图

代码片段和文件信息

# ---------------------------------------------------------------------------
# test.py
# Created on: 星期五 一月 07 2011 01:14:21 下午
#   高斯空气扩散模型
# Author:黄兆明
# ---------------------------------------------------------------------------
import win32com.clientsys string os arcgisscriptingmathfileinput
#空气污染类型对应类型,PType:污染物类型;I:污染指数
def GetType(PType I):
if PType == “TSP“ :
if I == 50 :
return 0.120
elif I == 100 :
return 0.300
elif I == 200 :
return 0.500
elif I == 300 :
return 0.625
elif I == 400 :
return 0.875
else :
return 1.000
if PType == “SO2“ :
if I == 50 :
return 0.050
elif I == 100 :
return 0.150
elif I == 200 :
return 0.250
elif I == 300 :
return 1.600
elif I == 400 :
return 2.100
else :
return 2.620
if PType == “NOx“ :
if I == 50 :
return 0.050
elif I == 100 :
return 0.100
elif I == 200 :
return 0.150
elif I == 300 :
return 0.565
elif I == 400 :
return 0.750
else :
return 0.940
#获取稳定度对应Qy,x为距离,Q大气稳定度
def GetQy(xQ) :
 if Q==“A“ :
  if x<=1000:
   a=0.901074
   r=0.425809
  else :
   a=0.850934
   r=0.602052
 elif Q==“B“ :
   if x<=1000:
    a=0.914370
    r=0.281846
   else :
    a=0.865014
    r=0.396353
 elif Q==“B-C“ :
  if x<=1000:
   a=0.919325
   r=0.229500
  else :
   a=0.875086
   r=0.314238
 elif Q==“C“ :
  if x<=1000:
   a=0.924279
   r=0.177154
  else :
   a=0.885157
   r=0.232123
 elif Q==“C-D“ :
  if x<=1000:
   a=0.926849
   r=0.143940
  else :
   a=0.886940
   r=0.189396
 elif Q==“D“ :
  if x<=1000:
   a=0.929418
   r=0.110726
  else :
    a=0.888723
    r=0.146669
 elif Q==“D-E“ :
   if x<=1000:
     a=0.925118
     r=0.0985631
   else :
     a=0.892794
     r=0.124308
 elif Q==“E“ :
   if x<=1000:
    a=0.920818
    r=0.0864001
   else :
    a=0.896864
    r=0.101947
 else :
   if x<=1000:
    a=0.929418
    r=0.0553634
   else :
    a=0.888723
    r=0.0733348
 return r*pow(xa)

#获取稳定度对应Qz,x为距离,Q大气稳定度
def GetQz(xQ) :
 if Q==“A“ :
  if x<=300:
   a=1.12154
   r=0.0799904
  elif  x>300 and x<=500:
   a=1.51360
   r=0.00854771
  else :
   a=2.10881
   r=0.000211545
 elif Q==“B“ :
   if x<=500:
    a=0.964435
    r=0.127190
   else :
    a=0.109356
    r=0.057025
 elif Q==“B-C“ :
  if x<=500:
    a=0.941015
    r=0.114682
  else :
   a=1.00770
   r=0.0757182
 elif Q==“C“ :
   a=0.917595
   r=0.106803
 elif Q==“C-D“ :
  if x<=2000:
   a=0.838628
   r=0.126152
  elif x>2000 and x<=10000 :
   a=0.756410
   r=0.235667
  else :
   a=0.815575
   r=0.136659
 elif Q==“D“ :
  if x<=1000:
   a=0.826212
   r=0.104634
  elif x>1000 and x<=10000 :
    a=0.632023
    r=0.400167
  else :
    a=0.55536
    r=0.810763
 elif Q==“D-E“ :
   if x<=2000:
     a=0.776864
     r=0.111771
   elif x>2000 and x<=10000 :
     a=0.572347
     r=0.5289922
   else :
     a=0.499149
     r

评论

共有 条评论