資源簡介
大氣模型算法,氣體污染擴散模型,用java編寫,需要mapinfo支持

代碼片段和文件信息
package?com;
import?java.util.ArrayList;
import?java.util.List;
import?com.mapinfo.mapj.MapJ;
import?com.mapinfo.util.DoublePoint;
public?class?AirDensity
{
????public?double?Q?;
????public?double?Pai?=?Math.PI;
????public?double?Gy?;
????public?double?Gz?;
????public?double?AirSpeed?;
????public?double?Dest;
public?double??AirAngle?;?
????
????public?double?X?;
????public?double?Y?;
????public?double?Z?=?0;//;
????/**
?????*?@param?q 單位排放量
?????*?@param?airSpeed 風速
?????*?@param?x 橫坐標最大長度
?????*?@param?y 縱坐標最大長度
?????*?@param?airAngle 風向
?????*/
????public?AirDensity(double?q???double?airSpeed?double?x?double?yint?airAngle)
????{
????????Q?=?q;
????????Dest=Math.sqrt(X?*?X?+?Y?*?Y);
????????AirSpeed?=?airSpeed;
????????AirAngle=airAngle*(Math.PI/180); //要轉(zhuǎn)換成弧度
????????X?=?x;
????????Y?=?y;
????}
????
??/**計算污染源濃度
?*?@return 濃度
?*/
public?double?CalDensity()
??{
??????Gy?=?y1()*Math.pow(Xa1())?;
??????Gz?=?y2()?*?Math.pow(X?a2());
??????double?density?=?Q?*?(1/(2?*?Pai?*?AirSpeed*Gy*Gz))*Math.exp(-(Y*Y)/(2*(Gy*Gy)))*Math.exp(-0/(2*(Gz*Gz)));
??????return?density;
??}
??public?double?a1()
??{
?????
??????????if?(0?<=?Dest?&&?Dest?<=?1000)
??????????????return?0.926849;
??????????if?(?Dest?>1000)
??????????????return?0.886940;
??????????return?0;
???????
??}
??public?double?y1()
??{
??????
??????????if?(0?<=?Dest?&&?Dest?<=?1000)
??????????????return?0.143940;
??????????if?(Dest?>?1000)
??????????????return?0.189396;
??????????return?0;
??????
??}
??public?double?a2()
??{
??????
??????????if?(0?<=?Dest?&&?Dest?<=?2000)
??????????????return?0.838628;
??????????if?(2000???????????????return?0.756410;
??????????if?(10000???????????????return?0.815575;
??????????return?0;
??????
??}
??public?double?y2()
??{
??????
??????????if?(0?<=?Dest?&&?Dest?<=?2000)
??????????????return?0.126152;
??????????if?(2000???????????????return?0.235667;
??????????if?(10000???????????????return?0.136659;
??????????return?0;
???????
??}
??
??
??
??/**根據(jù)x坐標和濃度計算y坐標
?*?@param?x 橫坐標
?*?@param?density
?*?@return
?*/
public?double?CalYbyX(double?xdouble?density)
??{
??AirDensity?_Density=this;//new?AirDensity(00000);
??//_Density.Dest=x;
??double?_a1=_Density.a1();
??double?_y1=_Density.y1();
??double?_a2=_Density.a2();
??double?_y2=_Density.y2();
??
?????double?_Gy?=?_y1*Math.pow(x_a1)?;
?????double?_Gz?=?_y2?*?Math.pow(x?_a2);
????//??double?density?=?Q?*?(1/(2?*?Pai?*?AirSpeed*Gy*Gz))*Math.exp(-(Y*Y)/(2*(Gy*Gy)))*Math.exp(-0/(2*(Gz*Gz)));
?????
?????double?yy=density/Q;
?????yy=yy*(2*Math.PI*AirSpeed*_Gy*_Gz);
?????yy=?Math.log(yy)/Math.log(Math.E)?;
?????yy=Math.abs(?yy*2*(Gy*Gy));
?????yy=?Math.sqrt(yy);
?????
??????return?yy;
??}
private?double?miLon=0.0000115721704127876519013676624;?//1米的經(jīng)度
private?double?miLat=0.0000089932202939481227428007
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????584??2010-06-04?13:29??DensityPoints.java
?????文件???????4859??2011-04-20?09:26??AirDensity.java
-----------?---------??----------?-----??----
?????????????????5443????????????????????2
評論
共有 條評論