资源简介
大气模型算法,气体污染扩散模型,用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); //要转换成弧度
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 < Dest && Dest <= 10000)
return 0.756410;
if (10000 < Dest )
return 0.815575;
return 0;
}
public double y2()
{
if (0 <= Dest && Dest <= 2000)
return 0.126152;
if (2000 < Dest && Dest <= 10000)
return 0.235667;
if (10000 < Dest)
return 0.136659;
return 0;
}
/**根据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米的经度
private double miLat=0.0000089932202939481227428007
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 584 2010-06-04 13:29 DensityPoints.java
文件 4859 2011-04-20 09:26 AirDensity.java
----------- --------- ---------- ----- ----
5443 2
相关资源
- 一个简单的lz78压缩算法
- ai五子棋,五元组算法
- java 排序算法可视化
- java实现的决策树算法
- 算法4谢路云源码之ThreeSumFast
- 算法4谢路云源码之ThreeSum
- SHA-256加密算法JAVA
- 存储管理——动态分区分配算法
- java排课算法核心代码及思想
- ASP HMAC_SHA256 HS256算法 基于JAVASCIRPT R
- 基于贝叶斯算法的JavaMail垃圾邮件过滤
- 几个推荐算法的java实现
- 标签传播算法LPA
- voronoi泰森多边形算法和delaunay triang
- 用java实现的基于网格的聚类算法
- 数据结构 各种排序算法 java图形界面
- Java 模拟进程调度算法
- 基于java使用DDA、Bresenham算法、中点画
- 决策树ID3算法Java实现
- 基于P2P网络chord算法
- 可变分区管理方式下最先适应分配算
- 一个采用AES算法的加密模块和调用V
- 基于JAVA的考试系统中题库设计及组卷
- 操作系统-动态分区分配算法-JAVA版
- 多边形填充算法java实现
- TFIDF算法mapreduce实现
- Matlab遗传算法求混合流水车间调度最
- 计算机网络_DV算法的实现与设计
- 协同过滤推荐算法java实现
- RSA公钥加密算法Java实现
评论
共有 条评论