閆吉順,方海超,孫家文*,于永海,李 家
(1. 遼寧師范大學(xué) 城市與環(huán)境學(xué)院,遼寧 大連 116029;2. 國家海洋環(huán)境監(jiān)測中心,遼寧 大連 116023)
基于ArcGIS Engine的沉積物粒徑趨勢分析模型開發(fā)與應(yīng)用
閆吉順1,方海超2,孫家文2*,于永海2,李 家1
(1. 遼寧師范大學(xué) 城市與環(huán)境學(xué)院,遼寧 大連 116029;2. 國家海洋環(huán)境監(jiān)測中心,遼寧 大連 116023)
以Microsoft Visual Studio 2010為開發(fā)平臺,嵌入ArcGIS Engine集成組件,以Gao-Collins方法為基礎(chǔ),利用C#程序語言開發(fā)沉積物粒度分析模型、半方差函數(shù)模型和沉積物粒徑趨勢分析模型等分析模型工具;并以大連市金石灘84個站位采樣數(shù)據(jù)為實例,利用該工具進行了沉積物粒徑趨勢分析。
Gao-Collins;沉積物粒度;半方差函數(shù);粒徑趨勢分析;ArcGIS Engine
在海洋沉積學(xué)中,通過沉積物粒度參數(shù)的空間變化(粒徑趨勢),反推沉積物凈輸運方向的思想和相應(yīng)的一套計算方法稱為粒徑趨勢分析[1]。眾多研究者進行了深入研究[2],例如劉濤[1]等基于“動力組分”思想建立了沉積物粒徑趨勢模型;Mclaren和Bowles把平均粒徑、分選系數(shù)和偏態(tài)3個粒度參數(shù)結(jié)合起來,提出了一維粒徑輸運趨勢模型[3];Gao和Collins提出了一種粒徑趨勢分析方法,即Gao-Collins方法[4];馬菲[5]等采用地統(tǒng)計法對北部灣東部海域沉積物粒徑趨勢進行分析;徐志偉[6]等提出利用多元統(tǒng)計及物源分析對北部灣東部海域沉積物粒徑趨勢進行分析。
粒徑趨勢分析方法已經(jīng)日益成熟,但過程繁雜,計算規(guī)模較大,若實現(xiàn)模型計算自動化與可視化將能提高研究工作的效率與準(zhǔn)確性?;诘乩頂?shù)據(jù)具有空間相關(guān)性的特征,本文選擇Microsoft Visual Studio 2008為開發(fā)平臺,嵌入ArcGIS Engine集成組件,不僅可保持地理數(shù)據(jù)的空間相關(guān)性,而且能滿足繁瑣與較大規(guī)模的計算需求。
1.1 沉積物粒度分析模型
粒度分析的目的是獲得沉積物粒徑的概率分布曲線。習(xí)慣上將沉積物樣品分為粗顆粒和細顆粒(以0.063 mm粒徑為界),細顆粒物質(zhì)用移液管法分析,粗顆粒物質(zhì)用篩法分析,最后將兩部分綜合起來,獲得完整的粒徑分布曲線。要注意的是,沉積學(xué)中的粒徑通常不以mm表示,而是以DΦ來表示:
式中,D為以mm計的粒徑;DΦ為Φ變換后的無量綱粒徑。
對于一定的粒度分布曲線,可以計算出一系列粒度參數(shù)。最常用的粒度參數(shù)包括平均粒徑、分選系數(shù)和偏態(tài)系數(shù)[7]。
粒度參數(shù)的計算方法主要有圖解法和矩值法,包括Folk和Ward的圖解法公式、Collias等的矩法公式和McManus的矩法公式。對3種公式綜合對比后認(rèn)為Collias等的矩法公式反映沉積物粒度分布特征更加靈敏、可靠[8],本文采用該公式。
式中,μ、δ、Sk和Ku分別為平均粒徑、分選系數(shù)、偏態(tài)和峰態(tài);Xi為粒級組中值(Ф);fi為各粒級范圍的百分含量。
1.2 半方差函數(shù)模型
對表層沉積物采樣間距的分析方法,使用了地學(xué)統(tǒng)計法中的半方差分析,即對于平均粒徑、分選系數(shù)和偏態(tài)等參數(shù),構(gòu)造以下函數(shù)[9]:
式中,h為采樣間距;Nh為樣品的個數(shù);Zi為原點處的參數(shù)值;Zi+h為h之外站位的參數(shù)值;γh為半方差值。以半方差γh為縱坐標(biāo)、采樣間隔h為橫坐標(biāo)作圖得到半方差圖。
1.3 Gao-Collins方法沉積物粒徑趨勢分析模型[10]
粒徑趨勢指沉積物粒度參數(shù)平面分布的變化趨勢。對于一個海區(qū),可以布設(shè)一定的采樣網(wǎng)格進行底質(zhì)取樣。在采樣網(wǎng)格中,如果考慮任意兩個相鄰的采樣點A和B,則這兩個采樣點的粒度參數(shù)之間有多種可能的空間變化,如從采樣點A至采樣點B,分選系數(shù)可能減小,平均粒徑可能變大,這些都代表粒徑趨勢的不同類型。用多個粒度參數(shù)可以形成組合的粒徑趨勢,一般而言,用n個粒度參數(shù)可構(gòu)成2n種粒徑趨勢,如用平均粒徑、分選系數(shù)和偏態(tài)系數(shù),從采樣點A到采樣點B可構(gòu)成如表1所列的8種基本類型;還可用基本類型進一步形成復(fù)合的類型,如表1中的類型1與類型2之和就是一種復(fù)合類型。
表1 用3種粒度參數(shù)所構(gòu)成的粒徑趨勢類型
上述任何一種類型的粒徑趨勢都可用一個矢量來表示,稱為粒徑趨勢矢量。該矢量的方向是從采樣點A指向B,其大小定義為一個單位長度。對于一個采樣網(wǎng)格,每一個采樣點的粒度參數(shù)都可以與相鄰采樣點的參數(shù)進行比較,從而找出對應(yīng)于這個采樣點的所有粒徑趨勢矢量。粒徑趨勢矢量還有不同的定義方法,但其目的都是為了將粒徑趨勢定量化或?qū)⒘节厔荼硎緸槠矫鎴D形。
進一步考察粒徑趨勢矢量,可以發(fā)現(xiàn)在一個采樣網(wǎng)格中各個方向上出現(xiàn)某一類型的粒徑趨勢的概率是不同的。如果將某一采樣點的所有粒徑趨勢矢量相加,求出這些矢量的合矢量,則各個采樣點的合矢量往往構(gòu)成一種有序的分布。在各向同性的情況下,合矢量的長度應(yīng)該接近于零。因此,合矢量的有序分布代表一種各向異性的特征。在天然的海洋環(huán)境中,粒徑趨勢矢量的各向異性的程度隨地點而異。
Gao-Collins方法,把粒徑趨勢矢量的平面分布圖看成一幅同時包含信息和噪聲的圖像,從而用圖像處理技術(shù)來提取平面二維粒徑趨勢矢量圖像中所含的沉積物輸運信息。對于所考慮的海域可通過各采樣點底質(zhì)的粒度分析獲得粒徑參數(shù)的平面分布圖式,然后經(jīng)粒徑趨勢分析獲得沉積物輸運圖式。粒徑趨勢分析首先是在采樣點網(wǎng)格上對每兩個相鄰的采樣點進行比較,找出所有的粒徑趨勢矢量。兩個采樣點是否“相鄰”,可用特征距離DΦ來衡量(DΦ通常為最大采樣間距)。如果兩個采樣點的實際間距小于DΦ,則判定為“相鄰”,否則判定為“不相鄰”。
然后用式(7)求出每個采樣點的趨勢矢量的和:
式中,n為所考慮的采樣點的趨勢矢量總數(shù);r(x,y)為趨勢矢量。
2.1 環(huán)境配置
開發(fā)平臺為Microsoft Visual Studio 2010,開發(fā)語言為C#,組件配置為嵌入ArcGIS Engine組件,運行環(huán)境為Framework 3.5和ArcGIS Engine Runtime。
2.2 功能分析
通過對ArcGIS軟件的二次開發(fā),實現(xiàn)數(shù)據(jù)的自動化分析和可視化顯示。具體功能如圖1所示。
圖1 功能分析流程圖
2.3 代碼實現(xiàn)
模型運行代碼:
1)初始數(shù)據(jù)轉(zhuǎn)化為Φ無量綱粒徑。
public void lijing_zhuanhua(string []id_str,int zw_count)
{
int n = zw_count;//站位個數(shù)
int m = 93;//粒徑數(shù)量
double[,] lj = new double[n, m];//各個站位粒徑
double[,] tj = new double[n, m];//各個站位微分體積
double[,] lj_fai = new double[n, m];//各個站位粒徑轉(zhuǎn)化成Φ值
double[,] tj_pinlv = new double[n, m];//各個站位微分體積轉(zhuǎn)成頻率
string []name_str=new string[n];
for (int i = 0; i < name_str.Length; i++)
{
name_str[i] = id_str[i];
}
string sql = string.Empty;
DataTable dt=null;
string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Environment.CurrentDirectory + "\lidu.mdb";
OleDbConnection conn;
conn = new OleDbConnection(strConn);
conn.Open();
for (int j = 0; j < name_str.Length; j++)
{
sql = "select * from "+name_str[j];
DataSet ds = new DataSet();
OleDbDataAdapter da=new OleDbDataAdapter(sql, conn);
da.Fill(ds);
dt = ds.Tables[0];
for (int k = 0; k < 93; k++)
{
lj[j,k] = double.Parse(dt.Rows[k]["lj"].ToString());
lj_fai[j, k] =- Math.Log((lj[j,k]/1000),2);
tj[j,k] = double.Parse(dt.Rows[k]["tj"].ToString());
tj_pinlv[j, k] = tj[j, k] / 100;
}
}
}
2)平均粒徑、分選系數(shù)、偏態(tài)和峰態(tài)計算。
public void sizhi_jisuan(string []id_str,int zw_count)
{
double avg_lj=0 ;//平均粒徑
double fxxs = 0;//分選系數(shù)
double pt = 0;//偏態(tài)
double ft = 0;//峰態(tài)
double[] pingjunlijing = new double[name_str.Length];
double[] fenxuanxisu = new double[name_str.Length];
double[] piantai = new double[name_str.Length];
double[] fengtai = new double[name_str.Length];
for (int o = 0; o < name_str.Length; o++)
{
for (int p = 0; p < 93; p++)
{
avg_lj += ((lj_fai[o, p] * tj_pinlv[o, p])/100);
}
for (int f1 = 0; f1 < 93; f1++)
{
fxxs += (Math.Pow((lj_fai[o, f1] - avg_lj), 2) * tj_pinlv[o, f1])/100;
pt += (Math.Pow((lj_fai[o, f1] - avg_lj), 3) * tj_pinlv[o, f1])/100;
ft += (Math.Pow((lj_fai[o, f1] - avg_lj), 4) * tj_pinlv[o, f1])/100;
}
pingjunlijing[o] = avg_lj;
fenxuanxisu[o] = Math.Sqrt(fxxs);
if (pt < 0)
{
piantai[o] = (-pt)/Math.Pow(fxxs, 3);
}
else
{
piantai[o] = pt/Math.Pow(fxxs, 3);;
}
fengtai[o] = ft/Math.Pow(fxxs,4);
avg_lj = 0;
fxxs = 0;
pt = 0;
ft = 0;
}
add_tezhengzhi(pingjunlijing, "pjlj");
add_tezhengzhi(fenxuanxisu, "fxxs");
add_tezhengzhi(piantai, "pt");
add_tezhengzhi(fengtai, "ft");//將值添加到屬性表中
}
3)半方差函數(shù)模型。
public void bianfangcha()
{
IFeatureLayer pfeaturelayer;
IFeatureClass pfeatureclass;
ITable ptable;
IQueryFilter pfilter = new QueryFilterClass();
int u2 = 0;
if (axMapControl1.LayerCount == 0)
{
MessageBox.Show("您沒有添加數(shù)據(jù),請?zhí)砑觭hp文件");
return;
}
pfeaturelayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer;
pfeatureclass = pfeaturelayer.FeatureClass;
ptable = pfeatureclass as ITable;
u2 = ptable.RowCount(pfilter);
double[] x_1 = new double[u2];
double[] y_1 = new double[u2];
double[,] distance_xy = new double[u2,u2];
double[] pjlj_1 = new double[u2];
double[] pt_1 = new double[u2];
double[] fxxs_1 = new double[u2];
double[] ft_1 = new double[u2];
string[] str_zw = new string[u2];
double[] bianfangcha1=new double [10];
double[] bianfangcha2=new double [10];
double[] bianfangcha3=new double [10];
ICursor pcursor = ptable.Search(null, false);
IRow prow = pcursor.NextRow();
for (int qq = 0; qq < u2; qq++)
{
x_1[qq] = double.Parse(prow.get_Value(ptable. FindField("pmx")).ToString());
y_1[qq] = double.Parse(prow.get_Value(ptable. FindField("pmy")).ToString());
pjlj_1[qq] = double.Parse(prow.get_Value(ptable. FindField("pjlj")).ToString());
pt_1[qq] = double.Parse(prow.get_Value(ptable. FindField("pt")).ToString());
fxxs_1[qq] = double.Parse(prow.get_Value(ptable. FindField("fxxs")).ToString());
ft_1[qq] = double.Parse(prow.get_Value(ptable. FindField("ft")).ToString());
str_zw[qq] = prow.get_Value(ptable.FindField("zw_id")). ToString();
prow = pcursor.NextRow();
}
for (int fa = 0; fa < u2; fa++)
{
for (int fb = 0; fb < u2 ; fb++)
{
distance_xy[fa,fb] = Math.Sqrt((x_1[fa] - x_1[fb]) * (x_1[fa] -x_1[fb]) + (y_1[fa] - y_1[fb]) * (y_1[fa] - y_1[fb]));
}
}
bianfangcha1=bianfangcha_jisuan(distance_xy,pjlj_1);
bianfangcha2=bianfangcha_jisuan(distance_xy,pt_1);
bianfangcha3=bianfangcha_jisuan(distance_xy,fxxs_1);
//調(diào)用添加字段函數(shù)
}
public double[] bianfangcha_jisuan(double [,]distance_xy, double []fenlei)
{
double[] di = { 300, 500, 800, 1000, 1200, 1500, 2000, 2500, 2800, 3000 };
double count=0;
double bianfangcha=0;
double []bianfangcha_shuzu=new double [10];
for (int i = 0; i < di.length;i++)
{
for (int zu = 0; zu < fenlei.length; zu++)
{
for (int zo = 0; zo < fenlei.length; zo++)
{
if (distance_xy[zu, zo] > 0 && distance_xy[zu, zo] < di[i])
{
count++;
bianfangcha+=Math.Pow((fenlei[zu]-fenlei[zo]),2);
}
}
}
bianfangcha_shuzu[i]=bianfangcha/(2*count);
}
return bianfangcha;
}
4)Gao-Collins方法沉積物粒徑趨勢分析模型。
①每個采樣點的趨勢矢量和。
public void qushi_tezhengjuli_fenxi(double [,]distance_ xy,double []pjlj_1,double []fxxs_1,double []pt_1,double tezhengjuli,int u2,double[,]distance_x_yipie_1,double[,]distance_ y_yipie_1)
{
for (int zu = 0; zu < u2; zu++)
{
for (int zo = 0; zo < u2; zo++)
{
if (distance_xy[zu, zo] > 0 && distance_xy[zu, zo] <= tezhengjuli)
{
if (fxxs_1[zu] < fxxs_1[zo] && pjlj_1[zu] < pjlj_1[zo] && pt_1[zu] > pt_1[zo])
{
shilianghe_jisuan(distance_x_yipie_1,distance_y_yipie_1);
}
if (fxxs_1[zu] < fxxs_1[zo] && pjlj_1[zu] > pjlj_1[zo] && pt_1[zu] < pt_1[zo])
{
shilianghe_jisuan(distance_x_yipie_1,distance_y_yipie_1);
}
if (fxxs_1[zu] < fxxs_1[zo] && pjlj_1[zu] < pjlj_1[zo] && pt_1[zu] < pt_1[zo])
{
shilianghe_jisuan(distance_x_yipie_1,distance_y_yipie_1);
}
if (fxxs_1[zu] < fxxs_1[zo] && pjlj_1[zu] > pjlj_1[zo] && pt_1[zu] > pt_1[zo])
{
shilianghe_jisuan(distance_x_yipie_1,distance_y_yipie_1);
}
if (fxxs_1[zu] > fxxs_1[zo] && pjlj_1[zu] < pjlj_1[zo] && pt_1[zu] > pt_1[zo])
{
shilianghe_jisuan(distance_x_yipie_1,distance_y_yipie_1);
}
if (fxxs_1[zu] > fxxs_1[zo] && pjlj_1[zu] > pjlj_1[zo] && pt_1[zu] < pt_1[zo])
{
shilianghe_jisuan(distance_x_yipie_1,distance_y_yipie_1);
}
if (fxxs_1[zu] > fxxs_1[zo] && pjlj_1[zu] < pjlj_1[zo] && pt_1[zu] < pt_1[zo])
{
shilianghe_jisuan(distance_x_yipie_1,distance_y_yipie_1);
}
if (fxxs_1[zu] > fxxs_1[zo] && pjlj_1[zu] > pjlj_1[zo] && pt_1[zu] > pt_1[zo])
{
shilianghe_jisuan(distance_x_yipie_1,distance_y_yipie_1);
}
}
}
}
qushifenxi_3(zhongdian_x_jihe, zhongdian_y_jihe, countshuzu, distance_xy, tezhengjuli,u2);
}
public void shilianghe_jisuan(double[,]distance_x_ yipie_1,double[,]distance_y_yipie_1)
{
double x_zhongdian = 0;
double y_zhongdian = 0;
int countqushi = 0;
int[] countshuzu = new int[u2];
double[] zhongdian_x_jihe = new double[u2];
double[] zhongdian_y_jihe = new double[u2];
countqushi++;
countshuzu[zu]= countqushi;
x_zhongdian += distance_x_yipie_1[zu, zo];
y_zhongdian += distance_y_yipie_1[zu, zo];
zhongdian_x_jihe[zu] = x_zhongdian;
zhongdian_y_jihe[zu] = y_zhongdian;
}
②沉積物凈輸運的格局。
public void qushifenxi_3(double[] zhongdian_x_jihe, double[] zhongdian_y_jihe,int []countshuzu,double[,]distance_ xy,double x,int y)
{
double tezhengjuli = x;
for (int zu = 0; zu < y; zu++)
{
for (int zo = 0; zo < y; zo++)
{
if (distance_xy[zu, zo] > 0 && distance_xy[zu, zo] <= tezhengjuli)
{
zhongdian_x_jihe[zu] += zhongdian_x_jihe[zo];
zhongdian_y_jihe[zu] += zhongdian_y_jihe[zo];
}
}
zhongdian_x_jihe[zu] = zhongdian_x_jihe[zu] / (countshuzu[zu] + 1);
zhongdian_y_jihe[zu] = zhongdian_y_jihe[zu] / (countshuzu[zu] + 1);
}
double[] jiaodu1 = new double[y];
for (int yrt = 0; yrt < y; yrt++)
{
jiaodu1[yrt] = (Math.Atan((zhongdian_y_jihe[yrt] / zhongdian_x_jihe[yrt])) * 180) / 3.141592653;
}
add_tezhengzhi(jiaodu1, "jiaodu1");
}
不同的粒度分析方法適用于不同類型的沉積物樣品。在實際工作中應(yīng)根據(jù)樣品類型選擇適當(dāng)?shù)姆椒╗11]。
示例區(qū)域共布設(shè)沉積物調(diào)查站位84個,共采集獲得84個站位的表層沉積物樣品。利用激光粒度儀分析粒徑小于2 mm的沉積物,篩析法和沉析法分析粒徑大于0.063 mm的沉積物,當(dāng)粒徑小于0.063 mm的物質(zhì)占99%以上時,可單獨采用沉析法。激光粒度儀為美國貝克曼庫爾特公司生產(chǎn)的庫爾特LS13320型,基于米氏理論和弗蘭候夫理論,采用雙鏡頭專利技術(shù),粒度測量范圍為0.04~2 000 μm。
將初始數(shù)據(jù)導(dǎo)入軟件,點擊模型計算按鈕進行自動化分析,并顯示最終分析結(jié)果。應(yīng)用步驟如下:
1)加載站位數(shù)據(jù),點擊粒度分析按鈕,系統(tǒng)自動將粒度轉(zhuǎn)化為Φ無量綱粒徑,計算平均粒徑、分選系數(shù)、偏態(tài)和峰態(tài),并將計算結(jié)果添加到屬性表中(圖2、3)。
2)點擊特征距離按鈕,自動計算不同距離的平均粒徑、分選系數(shù)和偏態(tài)的半方差值。依據(jù)實際測量數(shù)據(jù)與調(diào)查區(qū)域的實際情況,分別計算了10個距離(300 m、500 m、800 m、1 000 m、1 200 m、1 500 m、2 000 m、2 500 m、2 800 m、3 000 m)的半方差值,結(jié)果如圖4所示。分析結(jié)果顯示,拐點出現(xiàn)在1 200 m處,因此,特征距離選擇1 200 m可滿足實際樣品數(shù)據(jù)的分析要求。
3)點擊運輸趨勢按鈕進行沉積物輸運趨勢分析,結(jié)果如圖5所示。
圖2 數(shù)據(jù)導(dǎo)入窗口
圖3 站位屬性表信息
圖4 半方差函數(shù)分析圖
圖5 沉積物輸運趨勢圖
本文以大連市金石灘實際采集數(shù)據(jù)為實例,針對金石灘海域進行沉積物粒徑趨勢分析。研究區(qū)內(nèi)海流主要由潮流和風(fēng)海流組成,其中潮流占絕對優(yōu)勢,中西側(cè)海域漲落潮方向主要是WSW-ENE向,中東側(cè)海域漲落潮方向主要是WNW-ESE向。研究區(qū)西側(cè)近岸海域沉積物在沿岸流作用下向北輸運;西北側(cè)近岸海域沉積物以砂質(zhì)為主,源區(qū)主要為海灘侵蝕物質(zhì),在潮流作用下,向近岸海域加積;東北側(cè)近岸海域沉積物在潮流和波浪折射作用下主要表現(xiàn)為沿岸方向進行輸運;東側(cè)近岸海域沉積物源區(qū)主要是基巖海岸的剝蝕物質(zhì),在潮流作用下向近岸海域進行輸運;研究區(qū)中部海域沉積物呈“入”字型向西北向和東北向進行輸運,與潮流向一致。執(zhí)行結(jié)果符合實際情況。
[1] 劉濤,石學(xué)法,劉瑩,等.基于“動力組分”思想的沉積物粒徑趨勢模型[J].海洋學(xué)報(中文版),2011,33(5):97-103
[2] 汪亞平,高抒,賈建軍,等.膠州灣及鄰近海域沉積物分布特征和運移趨勢[J].地理學(xué)報,2000,55(4):449-458
[3] 王偉偉,莊麗華,閻軍,等.青島市匯泉灣海水浴場表層沉積物粒度特征及輸運趨勢[J].中國石油大學(xué)學(xué)報(自然科學(xué)版),2007,31(3):13-17
[4] 劉永學(xué),張忍順,陳君,等.粒徑趨勢分析法在細顆粒潮坪上的應(yīng)用[J].南京師大學(xué)報(自然科學(xué)版),2001,24(1):105-109,113
[5] 馬菲,汪亞平,李炎,等.地統(tǒng)計法支持的北部灣東部海域沉積物粒徑趨勢分析[J].地理學(xué)報,2008,63(11):1 207-1 217
[6] 徐志偉,汪亞平,李炎,等.多元統(tǒng)計及物源分析支持的北部灣東部海域沉積物輸運趨勢[J].海洋學(xué)報(中文版),2010, 32(3):67-78
[7] 高抒,Michael Collins.沉積物粒徑趨勢與海洋沉積動力學(xué)[J].中國科學(xué)基金,1998,12(4):241-246
[8] 劉志杰,公衍芬,周松望,等.海洋沉積物粒度參數(shù)3種計算方法的對比研究[J].海洋學(xué)報(中文版),2013,35(3):179-188
[9] 喬淑卿,石學(xué)法,王國慶,等.渤海底質(zhì)沉積物粒度特征及輸運趨勢探討[J].海洋學(xué)報(中文版),2010,32(4):139-147
[10] 高抒.沉積物粒徑趨勢分析:原理與應(yīng)用條件[J].沉積學(xué)報,2009,27(5):826-836
[11] 冉敬,杜谷,潘忠習(xí),等.沉積物粒度分析方法的比較[J].巖礦測試,2011,30(6):669-676
P208
B
1672-4623(2016)07-0104-06
10.3969/j.issn.1672-4623.2016.07.034
閆吉順,碩士研究生,主要從事GIS集成開發(fā)與應(yīng)用方面的研究。
2015-05-12。
項目來源:海洋公益資助項目(201405025)。(*為通訊作者)