當前位置:首頁 » 操作系統 » 標繪源碼

標繪源碼

發布時間: 2022-12-12 08:12:12

Ⅰ MFC 怎麼計算圖像的平均灰度值

圖像灰度值的計算

實現圖像的特殊效果的顯示的基本思路是要麼是操作圖像的像素,要麼是對圖像分塊按一定的方向或次序,分階段的顯示或擦除對應的圖像塊。對於第二種顯示的思路,其中的要點是:1.劃分圖像塊;2.確定圖像塊的操作次序;3.顯示或清除對應的圖像塊;4.在兩個連續顯示的圖像塊之間插入一個固定的延遲。其中圖像塊的劃分決定了圖像的顯示方式,圖像塊的顯示順序決定了顯示的方向和細分的依據。不同的效果決定了不同的分塊方法和顯示次序,我們將在後面的各種特效顯示中介紹如何分塊和決定次序。為了使圖像的顯示過程明顯的表現出來,實現顯示的特效,就需要在圖像塊的依此顯示中插入固定的延遲。也許讀者朋友會想到利用sleep()函數或用Settime()來實現延遲,由於Windows是個基於消息的多任務操作系統,這些方法所產生的延遲時間對於圖像的顯示來說是不精確的,為了實現與機器無關的更精確的時間延遲,可以採用timeGetTime()函數來產生微秒級的延遲。使用這個函數時為了編譯不產生錯誤,要在連接設置中引入Winmm.lib庫,並要包含頭文件Mmsystem.h。這里我們首先給出一個延遲函數,它用來實現固定時間的延遲:

void DelayTime(DWORD time)
{
DWORD BeginTime ,EndTime;
BeginTime=timeGetTime();//得到當前的系統時間、單位為微秒;
do
{
EndTime=timeGetTime();//再次得到當前的系統時間;
}
while((EndTime-BeginTime)
}

一、操作點陣圖的像素實現顯示的特效

我們首先介紹直接操作圖像中的像素的灰度值來實現圖像顯示的特效、這里我們主要介紹如何實現圖像的浮雕和雕刻效果。經常看電視的朋友們不知注意到沒有,有些電視連續劇在每集片頭或片尾部分都有顯示一些特殊效果的圖像,比如前一陣子中央一套放的《長征》和《康熙王朝》,這些特效稱為圖像的浮雕效果和圖像的雕刻效果,經過這些特效處理後的圖像增強了觀眾們的視覺效果,它們看上去彷彿是使用3D技術作的,這也許就是為什麼這種技術那麼流行的原因吧。其實,我們完全可以用一些簡單的數字圖像處理演算法來實現這些看似復雜高深的顯示效果。下面以一個標準的Lena灰度圖像為原圖,給出了處理後的效果圖,同時給出了VC開發平台上的部分實現源代碼。

1.浮雕圖像

浮雕圖象效果是指圖像的前景前向凸出背景。所謂的浮雕概念是指標繪圖像上的一個像素和它左上方的那個像素之間差值的一種處理過程,為了使圖像保持一定的亮度並呈現灰色,我在處理過程中為這個差值加了一個數值為128的常量。需要讀者注意的是,當設置一個像素值的時候,它和它左上方的像素都要被用到,為了避免用到已經設置過的像素,應該從圖像的右下方的像素開始處理,下面是實現的源代碼:

void CDibView::OnFDImage() //產生浮雕效果圖函數
{
HANDLE data1handle;//用來存放圖像數據的句柄;
LPBITMAPINFOHEADER lpBi;//圖像的信息頭結構;
CDibDoc *pDoc=GetDocument();//得到文擋指針;
HDIB hdib;//用來存放圖像數據的句柄;
unsigned char *pData;//指向原始圖像數據的指針;
unsigned char *data;//指向處理後圖像數據的指針;
hdib=pDoc->m_hDIB;//拷貝存放已經讀取的圖像文件數據句柄;
lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);//獲取圖像信息頭
pData=(unsigned char*)FindDIBBits((LPSTR)lpBi);
//FindDIBBits是我定義的一個函數、根據圖像的結構得到點陣圖的灰度值數據、
pDoc->SetModifiedFlag(TRUE);
//設置文檔修改標志為真、為後續的修改存檔作準備;
data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight);//聲明一個緩沖區用來暫存處理後的圖像數據;
data=(unsigned char*)GlobalLock((HGLOBAL)data1handle);//得到該緩沖區的指針;
AfxGetApp()->BeginWaitCursor();
int i,j,buf;
for( i=lpBi->biHeight; i>=2; i )//從圖像右下角開始對圖像的各個像素進行浮雕處理;
for( j=lpBi->biWidth; j>=2; j )
{
//浮雕處理
buf=*(pData+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)-*(pData+(lpBi->biHeight-i+1)*WIDTHBYTES(lpBi->biWidth*8)+j-1)+128;
if(buf>255) buf=255;
if(buf<0)buf=0; *(data+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)=(BYTE)buf;
}
for( j=0; jbiHeight; j++)
for( i=0; ibiWidth; i++)
//重新寫回原始圖像的數據緩沖區;
*(pData+i*WIDTHBYTES(lpBi->biWidth*8)+j)=*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j);AfxGetApp()->EndWaitCursor();
pDoc->m_hDIB =hdib//將處理過的圖像數據寫回pDoc中的圖像緩沖區;
GlobalUnlock((HGLOBAL)hdib);//解鎖、釋放緩沖區;
GlobalUnlock((HGLOBAL)data1handle);
GlobalFree((HGLOBAL)hdib);
GlobalFree((HGLOBAL)data1handle);
Invalidate(TRUE);//顯示圖像
}

2.雕刻圖像

上面講述了通過求一個像素和它左上方像素之間的差值並加上一個常數的方法生成浮雕效果的灰度圖像,雕刻圖像與之相反,它是通過取一個像素和它右下方的像素之間的差值並加上一個常數,這里我也取128,經過這樣處理,就可以得到雕刻圖像,這時候圖像的前景凹陷進背景之中。同樣需要讀者注意的是為了避免重復使用處理過的圖像像素,處理圖像時要從圖像的左上方的像素開始處理。實現代碼如下:

void CDibView::OnDKImage()
{
// TOD Add your command handler code here
HANDLE data1handle;//這里的內部變數與前面的含義一致、這里不再贅述;
LPBITMAPINFOHEADER lpBi;
CDibDoc *pDoc=GetDocument();
HDIB hdib;
unsigned char *pData;
unsigned char *data;
hdib=pDoc->m_hDIB;//拷貝圖像數據的句柄;
lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);
pData=(unsigned char*)FindDIBBits((LPSTR)lpBi);
pDoc->SetModifiedFlag(TRUE);
data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight);//申請緩沖區;
data=(unsigned char*)GlobalLock((HGLOBAL)data1handle);//得到新的緩沖去的指針;AfxGetApp()->BeginWaitCursor();
int i,j,buf;
for( i=0;i<=lpBi->biHeight-2; i++)//對圖像的各個像素循環進行雕刻處理;
for( j=0;j<=lpBi->biWidth-2; j++)
{
buf=*(pData+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+ j)-*(pData+(lpBi->biHeight-i-1)*WIDTHBYTES(lpBi->biWidth*8)+j+1)+128; //雕刻處理;
if(buf>255) buf=255;
if(buf<0)buf=0;
*(data+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)=(BYTE)buf;
}
for( j=0; jbiHeight; j++)
for( i=0; ibiWidth; i++)//重新將處理後的圖像數據寫入原始的圖像緩沖區內;*(pData+i*WIDTHBYTES(lpBi-> biWidth*8)+j)=*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j);
pDoc->m_hDIB =hdib//將處理過的圖像數據寫回pDoc中的圖像緩沖區;
GlobalUnlock((HGLOBAL)hdib);//解鎖、釋放緩沖區;
GlobalUnlock((HGLOBAL)data1handle);
GlobalFree((HGLOBAL)hdib);
GlobalFree((HGLOBAL)data1handle);
Invalidate(TRUE);//顯示圖像
}

3.圖像的旋轉

根據圖像像素的位置來調節該位置的灰度可以實現許多顯示的特效,例如圖像的鏡像、翻轉等。灰度圖像旋轉就是根據這一個思想實現的,它是指把定義的圖像繞某一點以逆時針或順時針方向旋轉一定的角度,通常是指繞圖像的中心以逆時針方向旋轉。首先根據旋轉的角度、圖像對角線的長度計算旋轉後的圖像的最大寬度、高度,根據旋轉後圖象最大的寬度、高度生成新的緩沖區,假設圖像的左上角為(left, top),右下角為(right, bottom),則圖像上任意點(x, y)繞其中心(xcenter, ycenter)逆時針旋轉angle角度後,新的坐標位置(x1, y1)的計算公式為:

xcenter = (width+1)/2+left;
ycenter = (height+1)/2+top;
x1 = (x-xcenter) cosθ - (y - ycenter) sinθ+xcenter;
y1 = (x-xcenter) sinθ+ (y- ycenter) cosθ+ ycenter;

與圖像的鏡像變換相類似,下一步就是把原圖中的(x,y)處象素的灰度值讀入新緩沖區的(x1,y1)點處。注意在新緩沖區中與原圖沒有對應的象素點的值用白色或指定的灰度代替。

二、圖像的分塊顯示和清除

1. 圖像的掃描顯示和清除

掃描顯示圖像是最基本的特效顯示方法,它表現為圖像一行行(或一列列)地顯示出來或從屏幕上清除掉,有種大戲院種的拉幕效果。根據掃描的方向的不同,可以分為上、下、左、右、水平平分和垂直平分等六種掃描。這里以向下移動為例,分別介紹顯示和清除的實現。其餘的掃描效果可以依次類推。向下掃描顯示的實現方法是:從圖像的底部開始將圖像一行一行的復制到目標區域的頂部。每復制一行後,復制的行數便要增加一行,並加上一些延遲;向下移動清除的實現方法是圖像向下移動顯示,並在顯示區域的上部畫不斷增高的矩形。

1)掃描顯示的代碼:

CdibView::OnImageDownScan()
{
CDibDoc *pDoc=GetDocument();
HDIB hdib;
CClientDC pDC(this);
hdib=pDoc->m_hDIB;//獲取圖像數據句柄;
BITMAPINFOHEADER *lpDIBHdr;//點陣圖信息頭結構指針;
BYTE *lpDIBBits;//指向點陣圖像素灰度值的指針;
HDC hDC=pDC.GetSafeHdc();//獲取當前設備上下文的句柄;
lpDIBHdr=( BITMAPINFOHEADER *)GlobalLock(hdib);//得到圖像的點陣圖頭信息;
lpDIBBits=(BYTE*)lpDIBHdr+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD);//獲取指向圖像像素值;
SetStretchBltMode(hDC,COLORONCOLOR);
//顯示圖像;
for(int i=0;ibiHeight;i++)
{ //每次循環顯示圖象的0到i行數據;
SetDIBitsToDevice (hDC,0,0,lpDIBHdr->biWidth, lpDIBHdr->biHeight,
0, 0,0, i,
lpDIBBits,(LPBITMAPINFO)lpDIBHdr,
DIB_RGB_COLORS
);
DelayTime(50);//延遲;
}
GlobalUnlock(hdib);
return;
}

2)清除代碼:

.......................................//由於篇幅的限制,省略了與上面的相同代碼
Cbrush brush(crWhite);//定義一個白色的刷子;
Cbrush *oldbrush=pDC->SelectObject(&brush);
for(int i=0;i < lpDIBHdr->biHeight ;i++)
{//每次循環將目標區域中的0到i行刷成白色;
pDC->Rectangle(0,0,lpDIBHdr->biWidth,lpDIBHdr->biHeight);
DelayTime(50);
}
.......................................

2. 百頁窗效果

所謂百頁窗顯示效果,就如同關閉和開啟百頁窗一樣,圖像被分為一條條或一列列地分別顯示或清除掉,根據顯示時以行或列為單位可以將該效果分為垂直或水平兩種方式。以垂直百頁窗為例來說明如何實現這種特效顯示。實現垂直百頁窗顯示時,需要將圖像垂直等分為n部分由上向下掃描顯示,其中每一部分包括m個條、這個n可以根據具體應用時的需要來決定、m既為圖像的高度除n。掃描顯示時,依照差值進行掃描顯示,即第k次顯示k-1、k*m-1、...k*n -1條掃描線。同樣,垂直百頁窗清除的實現與垂直百頁窗的顯示相似,不同的是將繪制點陣圖換成畫矩形而已。在下面的例子中,我將圖像的分成8份。

.......................................
int m=8;
int n=lpDIBHdr->biHeight/m;//圖像的高度能夠整除8;
for(int l=1;l<=m;l++)
for(int k=0;k
{ //每次循環依次顯示圖像中的k-1、k*m-1、...k*n-1行;
StretchDIBits (hDC,0,4*k+l-1,lpDIBHdr->biWidth,1,
0, lpDIBHdr->biHeight-4*k-l+1,lpDIBHdr->biWidth,1,
lpDIBBits,(LPBITMAPINFO)lpDIBHdr,
DIB_RGB_COLORS,
SRCCOPY);//juanlianxiaoguo

DelayTime(50);
}
.......................................

3.柵條顯示特效

柵條特效是移動特效的復雜組合,可以分為垂直柵條和水平柵條兩類。它的基本思想是將圖像分為垂直或水平的的小條,奇數條向上或向左顯示/清除,偶數條向下或向右顯示/清除。當然也可以規定進行相反的方向顯示/清除。下面的代碼是實現垂直柵條的例子:

.......................................
int m=8;
for(int i=0;i<=lpDIBHdr->biHeight;i++)
for(int j=0;j<=lpDIBHdr->biWidth;j+=m)
{//向下顯示偶數條;
StretchDIBits (hDC,j,0,m,i,j,lpDIBHdr->biHeight-i,
m,i,
lpDIBBits,(LPBITMAPINFO)lpDIBHdr,
DIB_RGB_COLORS,
SRCCOPY);//juanlianxiaoguo
j=j+m;
//向上顯示奇數條;
StretchDIBits (hDC,j,lpDIBHdr->biHeight-i,m,i,j,0,
m,i,
lpDIBBits,(LPBITMAPINFO)lpDIBHdr,
DIB_RGB_COLORS,
SRCCOPY);//
DelayTime(20);
}.......................................

4.馬賽克效果

馬賽克顯示是指圖像被分成許多的小塊,它們以隨機的次序顯示出來,直到圖像顯示完畢。實現馬賽克的效果主要解決的問題是如何定義顯示隨機序列的小方塊,這個問題的解決可以在定義過小方塊的基礎上,用一個數組來記錄各個方塊的左上角的坐標的位置。顯示圖像過程中,產生一個隨機數來挑選即將顯示的小方塊,顯示後將該方塊的位置坐標從數組中剔除。清除過程與之相仿。剔除顯示過的方塊的位置坐標的方法是將該數組中的最後的一個點的坐標拷貝到當前位置,然後刪除數組中的最後點的坐標,經過實現發現這樣處理有時顯示的圖像是不完整的,分析其原因是生成隨機數的過程有舍入溢出誤差。讀者可以採用其它的辦法解決這個問題,例如可以生成固定的隨機數組或採用一個動態的數組來跟蹤未顯示的圖像方塊的坐標等方法。

.......................................
int m,n;
int RectSize=60;//方塊的寬、高尺寸為60個像素;
if(lpDIBHdr->biWidth%RectSize!=0)//得到圖像水平方塊的個數;
m= lpDIBHdr->biWidth/RectSize+1;
else
m= lpDIBHdr->biWidth/RectSize;
if(lpDIBHdr->biHeight%RectSize!=0)//得到圖像垂直方塊的個數;
n= lpDIBHdr->biHeight/RectSize+1;
else
n=lpDIBHdr->biHeight/RectSize;
POINT *point=new POINT[n*m];//申請一個數組用來記錄各個方塊的左上角的坐標;
POINT point1;
for(int a=0;a
for(int b=0;b
{
point1.x=a*RectSize;
point1.y=b*RectSize;
*(point+a*b+b)=point1;
}
//開始隨機的顯示各個小方塊;
double fMax=RAND_MAX;//定義Rand()函數的最大值;
for(int k=m*n-1;k>=0;k )
{
int c=(int)((double)(m*n)*rand()/fMax);
int mx=point[c].x;
int my=point[c].y;
//顯示對應的圖像的小塊;
StretchDIBits (hDC,mx,my,RectSize,RectSize,
mx,lpDIBHdr->biHeight-my,RectSize,RectSize,
lpDIBBits,(LPBITMAPINFO)lpDIBHdr,
DIB_RGB_COLORS,
SRCCOPY);
point[c].x=point[k].x;
point[c].y=point[k].y;
DelayTime(50);
}
.......................................

Ⅱ Cesium實戰項目

本人所學GIS專業,畢業後一直從事Cesium相關的GIS開發工作,在業余時間將Ceium中常用的一些功能進行封裝,形成能夠高效復用的組件。實戰項目中的多數功能均來源於實際項目,緊貼業務特性,實用性強,能夠在最大程度上幫助個人、團隊、公司、企業提高工作效率,節省開發成本。

Cesium實戰項目目前共111個實例(後面會繼續增加),項目基於Cesium1.7.2+VUE 實現,現有實例如下:

基礎底圖

1.ArcGIS在線底圖

2.谷歌在線底圖

3.高德在線底圖

4.天地圖在線底圖

5.本地單張圖片

點狀對象

6.Cesium點聚合1

7.Cesium點聚合2

8.Billboard載入Gif圖片

9.Cesium 閃爍點

10.Primitives載入大量圖標點

11.div文本點

12.動態效果點

13.圖標點+文字(primitive方式)

單體化

14.傾斜模型分棟單體化 (基於geoserver)

15.傾斜模型分層單體化(基於geoserver)含教程

16.傾斜模型分戶單體化(基於geoserver)含教程

編輯繪制

17.點線面繪制

18.點線面編輯

19.點線面繪制擴展

20.點線面編輯擴展

自定義信息框

21.多欄位自適應信息框

22.氣泡窗口樣式1

23.氣泡窗口樣式2

標注標繪

24.自定義html標注圖層

25.軍事標繪

26.軍事標繪編輯

27.gltf 標繪繪制

28.gltf 標繪編輯

29.行政區標注

30.體對象繪制編輯

軌跡漫遊

31.軌跡回放

32.跟隨視角漫遊

33.第一人稱漫遊

34.上帝視角漫遊

分析

35.Cesium 2維點轉3維點

36.Cesium 空間線段等分

37.地表透明(地下模式)

38.通視分析

39.可視域分析

40.緩沖區分析

41.地表開挖(材質貼圖)

42.地形開挖(材質貼圖)

43.模型裁剪(Planes)

44.礦區岩層效果

45.雙屏對比

46.二三維聯動(基於openlayers)

場景

47.場景出圖(導出圖片)

48.自定義天空盒

49.位置信息狀態欄控制項

50.雨雪霧天氣效果

51.限定視角范圍

52.繪制反選遮罩

53.自定義空間背景

54.宏觀數字地球

55.鷹眼地圖(基於openlayers)

56.導航控制項

57.雲層

58.Tooltip滑鼠移入信息

59.書簽管理

60.旋轉的地球

61.繞點旋轉

62.場景泛光

工具

63.場景測量工具

64.滑鼠位置拾取工具

特效

65.動態線、流動線

66.流向動態線

67.動態水面效果

68.動態擴散圓

69.動態立體牆

70.粒子系統

71.圓形波紋效果

72.矢量白膜自定義shader(不改源碼

73.光暈線

74.動態立體牆(升級)

75.圓形、規則多邊形動態圍牆

76.圍牆擴散動畫

77.光柱椎體

78.數字工廠

79.六邊形擴散掃描

80.圓形擴散掃描

81.模型熱力圖

82.動態傳輸線

83.掃描線

行業應用

84.雷達掃描效果

85.雷達追蹤圓錐體

86.雷達追蹤四棱錐體

87.雷達遮罩掃描

88.相控陣雷達范圍

89.雷達放射波

90.衛星視椎體(四棱錐體)

91.視頻貼圖參數調整

92.視頻融合

93.目標跟蹤

94.動態目標檢測

95.視頻窗口(普通視頻)

96.視頻窗口(rtmp視頻)

97.視頻牆(含編輯)

98.動態水域

99.水閘放水效果

Echarts可視化支持

100.Echarts 遷徙圖1

101.Echarts 遷徙圖2

102.Echarts 散點圖

103.Echarts 流入線

104.Echarts 流出線

MapV可視化支持

105.MapV 遷徙圖

106.MapV 大遷徙圖

107.MapV 熱力圖

108.MapV 強邊界圖

其他

109.3dtiles高度調整

110.文字貼圖

111.熱力圖(基於heatmap.js插件)

在線預覽地址   在線預覽地址  用戶名cesium 密碼cesium@sz

Ⅲ 請問如何編程對各種文件名添加密

經常看電視的朋友們不知注意到沒有,最近的電視連續劇在每集片頭或片尾部分都有顯示一些特殊效果的圖像,比如前一陣子中央一套放的《長征》、目前中央八套正在播放的《康熙王朝》,這些特效稱為"圖像的浮雕效果"和"圖像的雕刻效果",經過這些特效處理後的圖像增強了觀眾們的視覺效果,它們看上去彷彿是使用3D技術作的,這也是為什麼這種技術那麼流行的原因吧。其實,我們完全可以用一些簡單的數字圖像處理演算法來實現這些看似復雜高深的顯示效果。我們手頭上的一些關於利用VC開發數字圖像資料大都是講解如何控制圖像的每一行或每一列像素的顯示時間或順序來實現一些簡單的圖像顯示效果,涉及到圖像演算法的文章很少,本文針對上述的這兩種圖像特效處理技術並加以引伸,講解了一些實現圖像特效演算法,以一個標準的Lena灰度圖像為原圖,給出了處理後的效果圖,同時給出了VC開發平台上的部分實現源代碼。

1."浮雕"圖像

"浮雕"圖象效果是指圖像的前景前向凸出背景。所謂的"浮雕"概念是指標繪圖像上的一個像素和它左上方的那個像素之間差值的一種處理過程,為了使圖像保持一定的亮度並呈現灰色,我在處理過程中為這個差值加了一個數值為128的常量。需要讀者注意的是,當設置一個像素值的時候,它和它左上方的像素都要被用到,為了避免用到已經設置過的像素,應該從圖像的右下方的像素開始處理,下面是實現的源代碼:

void CDibView::OnFDImage() //產生"浮雕"效果圖函數
{
HANDLE data1handle;
LPBITMAPINFOHEADER lpBi;
CDibDoc *pDoc=GetDocument();
HDIB hdib;
unsigned char *hData;
unsigned char *data;
hdib=pDoc->GetHDIB();
//我是如何打開圖像文件並得到圖像數據,請感興趣的朋友參考
//天極網上我的相關文章,那裡有詳細的論述,這里不再贅述。
BeginWaitCursor();
lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);
hData=(unsigned char*)FindDIBBits((LPSTR)lpBi);
pDoc->SetModifiedFlag(TRUE);
data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight);
//聲明一個緩沖區用來暫存處理後的圖像數據
data=(unsigned char*)GlobalLock((HGLOBAL)data1handle);
AfxGetApp()->BeginWaitCursor();
int i,j,buf;
for( i=lpBi->biHeight; i>=2; i--)
for( j=lpBi->biWidth; j>=2; j--)
{
//"浮雕"處理
buf=*(hData+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)-*(hData+(lpBi->biHeight-i+1)*WIDTHBYTES(lpBi->biWidth*8)+j-1)+128;
if(buf>255) buf=255;
if(buf<0)buf=0;
*(data+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)=(BYTE)buf;
}

for( j=0; jbiHeight; j++)
for( i=0; ibiWidth; i++)
//重新寫回原始圖像的數據緩沖區
*(hData+i*WIDTHBYTES(lpBi->biWidth*8)+j)=*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j);
AfxGetApp()->EndWaitCursor();
GlobalUnlock((HGLOBAL)hdib);
GlobalUnlock(data1handle);
EndWaitCursor();
Invalidate(TRUE);//顯示圖像
}

2."雕刻"圖像

上面講述了通過求一個像素和它左上方像素之間的差值並加上一個常數的方法生成"浮雕"效果的灰度圖像,"雕刻"圖像與之相反,它是通過取一個像素和它右下方的像素之間的差值並加上一個常數,這里我也取128,經過這樣處理,就可以得到"雕刻"圖像,這時候圖像的前景凹陷進背景之中。同樣需要讀者注意的是為了避免重復使用處理過的圖像像素,處理圖像時要從圖像的左上方的像素開始處理。實現代碼如下:

void CDibView::OnDKImage()
{
// TODO: Add your command handler code here
HANDLE data1handle;
LPBITMAPINFOHEADER lpBi;
CDibDoc *pDoc=GetDocument();
HDIB hdib;
unsigned char *hData;
unsigned char *data;
hdib=pDoc->GetHDIB();
BeginWaitCursor();
lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);
hData=(unsigned char*)FindDIBBits((LPSTR)lpBi);
pDoc->SetModifiedFlag(TRUE);
data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight);
data=(unsigned char*)GlobalLock((HGLOBAL)data1handle);
AfxGetApp()->BeginWaitCursor();
int i,j,buf;
//圖像的"雕刻"處理
for( i=0;i<=lpBi->biHeight-2; i++)
for( j=0;j<=lpBi->biWidth-2; j++)
{
buf=*(hData+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)-*(hData+(lpBi->biHeight-i-1)*WIDTHBYTES(lpBi->biWidth*8)+j+1)+128;
if(buf>255) buf=255;
if(buf<0)buf=0;
*(data+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)=(BYTE)buf;
}
for( j=0; jbiHeight; j++)
for( i=0; ibiWidth; i++)
//重新將處理後的圖像數據寫入原始的圖像緩沖區內
*(hData+i*WIDTHBYTES(lpBi->biWidth*8)+j)=*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j);
AfxGetApp()->EndWaitCursor();
GlobalUnlock((HGLOBAL)hdib);
GlobalUnlock(data1handle);
EndWaitCursor();
Invalidate(TRUE);
}

Lena原圖
"雕刻"效果圖
"浮雕"效果圖

用VC實現小型矢量圖形系統的開發
大家學習了VC的MFC的一些基礎知識後,如果能用VC開發一個比較實用的軟體,對熟悉VC各方面編程和面向對象的軟體設計和開發都是很有幫助的。

本文旨在通過對一個作者自己開發的小型矢量圖形系統全面講述而達到讓讀者了解一個小軟體從設計到實現的階段的解決的問題。同時也從界面和功能上對MFC和Windows系統功能的挖掘,同樣,對於學習計算機圖形學的讀者,也可以看到本文有很多對圖形學演算法和實現的有益探討。

一. 功能和界面設計

首先,讓大家對一個本軟體功能的大概了解。當你著手開發一個軟體時,首先要解決的當然是本軟體的功能(軟體工程常稱作用例,具體概念可以參考有關資料,不妨簡單理解為用戶使用它能完成哪些工作)。由於寫這篇文章時,本軟體已經具有比較完整的原型。我們可以結合它的界面(圖1)來介紹軟體設計的過程。

可以看到,本軟體是實現了一個繪圖功能的子集。最初就確定了開發環境為VC6.0,界面採用IE風格。在使用上為了給用戶最大的便利,採用了三種工具條(普通文件、列印操作等標准工具,對圖形對象屬性設置的工具條式對話框,帶文字說明的大按鈕式可浮動或任意船塢- Dock定位的繪圖工具條)。

操作上採用左鍵點擊建立圖形對象起始點,移動動態調整圖形大小和位置(隨手畫採用按住左鍵拖動的方式,再次點擊左鍵確定位置,右鍵取消操作,雙擊確定(結束)多步圖形對象(如多邊形)的繪制。在功能設計方面基本符合一般圖形軟體的慣例,但出於作者的便利和保護滑鼠的考慮,整個功能體現了基本無需按住左鍵拖動的思想。這也是很容易讓人接受的,因為即便習慣拖動的用戶拖動時也會產生位置調整,只是釋放後還是出於拖動狀態,再次點擊或雙擊才最終確定。

功能上選擇了畫線、框、圓、多邊形、立體、文字、曲線、填充以及刪除的功能,根據是否填充和光照又增加了幾個類別,填充方式根據圖形學的概念提供了兩種方式(以後介紹)。根據對圖形屬性取了線寬、線型(很容易實現簡單的線型,由於想加入更多的特性,作者先沒有具體實現它,以後作者會提到它的實現,讀者有興趣可以試著實現)、邊框色、填充色和字體幾個屬性。當然,這些功能在面向對象的方法中都是可以很方便擴展的(如畫橢圓,選取對象,對象的位移和旋轉操作,根據填充演算法實現同色選取,即Photoshop等軟體的魔棒功能等),對於橡皮擦功能可以很簡單的實現特定工具或告訴用戶如何實現此功能(即用背景色利用已有功能繪圖)。

內部實現上,要求單獨記錄各圖形的關鍵屬性(如位置、色彩等,這些是矢量圖區別於點陣圖的特點)。由於各對象可以形成對象鏈表,因此,也要求實現多步撤消(Undo)和重做(Redo)的功能,這往往是用戶所十分期待的功能(Window自帶的畫筆附件程序在這點上就很欠缺)。

二. 對象設計

面向對象的程序設計方法都支持三種基本的活動:識別對象和類,描述對象和類之間的關系,以及通過描述每個類的功能定義對象的行為。

首先介紹一下對象(Object)和類(Class)的區別,類是同類對象數據凸δ艿拿枋齪褪迪鄭–++中用Class關鍵字定義的是類),對象是類的在內存中的具體形態(用類名聲明或用new操作生成的是對象變數),一般稱對象為類的實例(Instance)。

對於圖形對象的對象設計由於它們的較強的相關性,往往在很多面向對象編程書都提到過,故相信讀者識別對象和類不會很困難。但是,要充分利用繼承和多態的特性來描述對象和類之間的關系,以及通過描述每個類的功能定義還是要具體問題具體分析的。

Ⅳ 智慧消防監控系統哪好

為全面做好全區消防安全工作,鄭州結合當前開展的冬季火災防控工作,扎實推進消防工作「網格化」管理,通過採取有效措施,確保火災防控力量整合到位、火災防控監管責任落實到位,全力構建社會化火災防控體系,有效地提高了整體火災防控能力,創造了良好的消防安全環境。

為深入貫徹落實中央政法委和公安部黨委關於提升政法及公安工作現代化水平的部署要求,加速推進現代科技與消防工作的深度融合,全面提高消防工作科技化、信息化、智能化水平,實現信息化條件下火災防控和滅火應急救援工作轉型升級,現提出如下智慧消防落實方案:

一、基本原則

1、突出精準防控

按照「縱向貫通、橫向交換、條塊融合」的原則,統一數據標准、規范數據來源,對消防內部、外部數據資源進行匯聚和挖掘分析,為火災風險研判、滅火救援指揮、隊伍管理分析、消防宣傳服務和領導指揮決策等提供信息支撐。

2、突出協同共治

建設消防安全治理工作平台,推進面向政府部門、社會單位、中介組織和社會公眾的消防社會化發展進程,創新社會消防安全治理新模式,形成多元共治、齊抓共管、全民參與、全社會共享的社會消防安全治理新格局。

3、突出服務實戰

按照「信息互通、快速便捷、輔助指揮」的原則,建立覆蓋全國的應急通信系統,提升應急通信網路覆蓋能力,搭建「一張圖」的實戰指揮平台,整合滅火應急救援基礎信息和社會資源,做到滅火救援預案隨機調閱查詢、作戰全程評估和災害事故發展趨勢預判,確保部隊指揮作戰響應迅捷、決策科學、處置高效。

4、突出服務民生

全面提升消防移動業務工作效能和移動信息化服務水平,為消防基層基礎工作向深度、廣度延伸提供保障,為社會公眾個性化消防安全需求提供服務,做到讓數據多跑路、群眾少跑腿。

5、突出警地融合

牢固樹立「警力有限、民力無窮、科技力無盡」的理念,堅持走「軍民聯合、警地融合」的道路,充分發揮天津、上海、沈陽、四川消防研究所的作用,加強與龍頭企業、高等院校、科研機構等深度合作,藉助社會優勢資源,藉助「外力」聯合開展項目攻關和關鍵技術研究,充分運用先進實用的消防科技成果。


二、工作目標

按照《消防信息化「十三五」總體規劃》要求,綜合運用物聯網、雲計算、大數據、移動互聯網等新興信息技術,加快推進「智慧消防」建設,全面促進信息化與消防業務工作的深度融合,為構建立體化、全覆蓋的社會火災防控體系,打造符合實戰要求的現代消防警務勤務機制提供有力支撐,全面提升社會火災防控能力、部隊滅火應急救援能力和隊伍管理水平,實現「傳統消防」向「現代消防」的轉變。

三、智慧消防重點任務

在全面推進「智慧消防」建設的基礎上,按照「急需先建、內外共建」的方式,近兩年重點抓好「五大項目」建設,實現動態感知、智能研判、精準防控,為消防工作和部隊建設提供信息化支撐。

1、建設城市物聯網消防遠程監控系統

<1>、打造城市消防遠程監控系統「升級版」,綜合利用RFID(射頻識別)、無線感測、雲計算、大數據等技術,依託有線、無線、移動互聯網等現代通信手段,整合已有的各數據中心,擴大監控系統的聯網用戶數量,完善系統報警聯動、設施巡檢、單位管理、消防監督等功能。在傳統監測火災自動報警系統的運行狀態及故障、報警信號基礎上,利用圖像模式識別技術對火光及燃燒煙霧進行圖像分析報警;監測室內消火栓和自動噴淋系統水壓、高位消防水箱和消防水池水位、消防供水管道閥門啟閉狀態、防火門開關狀態,利用單位視頻監控系統監控安全出口和疏散通道、消防控制室值班情況;接入電氣火災監控系統或裝置,實時監測漏電電流、線纜溫度等情況;研發手機APP系統,動態監控、立體呈現聯網單位消防安全狀態,全面提升社會單位消防安全管理水平和消防監督執法效能。

<2>、依託「智慧城市」建設,調整城市物聯網消防遠程監控系統運營現有的「中介模式」,推行由政府投資運營或政府委託有關機構運營的「政府模式」。各級公安消防部門主動向當地政府報告,申請專項經費投資建設,單位免費接入,每年安排運行經費預算,不向單位收取運行管理費,不增加單位經濟負擔,確保系統有序建設、規范運營、健康發展。

<3>、在直轄市、省會市、首府市以及計劃單列市基本建成的基礎上,逐步向有條件的城市推開物聯網消防遠程監控系統,2018年底地級以上城市建成並投入使用。目前已建成系統的城市,2017年底70%以上的火災高危單位和設有自動消防設施的高層建築接入系統,2018年底全部接入。新建系統的城市,2018上半年30%以上的火災高危單位和設有自動消防設施的高層建築接入系統,2018年底全部接入。

二、建設基於大數據的實戰指揮平台

1、充分運用大數據、雲計算、移動互聯網、地理信息等技術,依託公安網(消防信息網及指揮調度網)、邊界接入平台和公安PGIS地圖,實現滅火救援的一張圖指揮、一張圖調度、一張圖分析、一張圖決策。災情信息實時化,通過城市重大事故及地質性災害事故救援兩大應急通信系統,實時獲取災害現場圖像、語音和數據,掌握災情動態及發展態勢;作戰對象精準化,逐級匯聚一體化消防業務信息系統等數據,關聯作戰對象的地理位置、概況、結構、消防設施和數字化預案,以及周邊道路、水源、重大危險源等信息,為分析研判作戰對象提供立體式支撐;力量信息精確化,優化基礎信息採集維護手段,實現轄區消防隊站、多種形式消防隊伍、裝備器材、保障物資等信息上圖展示,為科學指揮和力量調度提供准確信息參考;作戰指揮可視化,應用位置定位、物聯網、移動指揮終端等設備,掌握調動力量所在位置、數量和狀態,實現移動式信息推送、一鍵式力量調度和前後方信息交互;通過共享對接政府應急聯動部門、社會應急聯動單位、聯勤保障單位等信息資源,提高接警出動、聯合處置、聯動協同效能。在深度整合信息資源的基礎上,實現滅火救援信息要素的「一張圖」展示和「大數據」分析,為各級指揮員提供輔助決策支撐,不斷提升部隊滅火救援科學化、智能化水平。

2、各級平台按照「統一數據標准、統一關鍵技術、屬地組織建設、體現層級差異」的原則建設,確保在指揮體繫上的完整和數據的共享互通。部消防局平台突出全國信息資源共享查詢分析、國家級應急聯動指揮、宏觀態勢研判和跨省指揮調度;總隊平台發揮承上啟下作用,突出對屬地災情處置和作戰指揮的精確管控;支隊平台在拓展現有消防接處警系統功能的基礎上,建設個性化研判分析工具和輔助指揮應用,突出各類信息收集、上報、精細化指揮和全過程科學戰評。

3、各總隊、支隊按照《城市重大事故及地質性災害事故救援應急通信系統建設技術方案》,完成全國10支應急通信保障分隊和兩大應急通信系統示範建設;按照《實戰指揮平台建設技術指導意見》,完成本級實戰指揮平台建設或升級改造項目方案編制立項,實現10類基礎信息採集、上報,並在本級地圖上載入,滿足部消防局實戰指揮平台調用需要。

三、建設高層住宅智能消防預警系統

1、結合當地智慧用電、用氣、用水系統建設,整合高層住宅建築各類監控系統和視頻資源,建立智能消防預警系統。在新建高層住宅應用城市物聯網消防遠程監控系統,對消防設施、電氣線路、燃氣管線、疏散樓梯等進行實時監測。在老舊高層住宅建築加裝應用獨立式火災探測報警器、簡易噴淋裝置、火災應急廣播以及獨立式可燃氣體探測器、無線手動報警、無線聲光警報等設施。

2、研發手機APP系統,利用移動互聯網技術將各類監測信息與手機互聯互通,消防監督員、公安派出所民警、社區網格員、物業管理人員、微型消防站隊員以及樓棟居民,可實時接收火災報警信號,查看消防設施、安全疏散、電氣燃氣等各項監測數據,實現高層住宅消防安全信息化管理。

3、結合城市物聯網消防遠程監控系統,同步建設高層住宅智能消防預警系統。目前已建成城市物聯網消防遠程監控系統的城市,2017年底70%以上設有自動消防設施的高層住宅接入系統、應用APP平台。

四、建設數字化預案編制和管理應用平台

1、充分利用物聯網、移動互聯網及各類感測器技術,採集作戰對象的基礎數據和部隊基礎信息,製作滿足部隊日常熟悉演練、作戰指揮需要的數字化預案;預案能夠通過全景、三維建模等方式展示滅火救援要素,動態展現災情演變或作戰效能;預案管理應用平台與119接警調度系統、「六熟悉」管理系統和實戰指揮平台進行融合、雙向互通,在現場可實現力量查詢、地理信息測量、作戰部署標繪、輔助單兵定位等功能,輔助指揮員開展計劃指揮和臨機指揮;在室內開展熟悉演練、戰例復盤、作戰指揮推演、三維場景展示,輔助指戰員開展業務學習。

2、部消防局研發數字化預案管理應用平台,規范預案輸出和數據交換格式,研發「六熟悉」管理系統,自動採集重點單位基礎信息和動態信息數據,同步導入一體化信息系統基礎信息,實現「一張圖」可視化管理;各地根據預案等級和作戰指揮需求,採取基於地理信息系統的二維圖片、全景照片、三維立體建模、無人機傾斜攝影等技術編制數字化預案。

3、2017年底前,總隊、支隊和中隊完成數字化預案模版;2018年,完成預案管理應用平台研發,與實戰指揮平台、熟悉演練平台、移動指揮終端的無縫聯接;2018年底,各地完成總隊、支隊級預案編制,實現案例復盤、模擬演練培訓,各中隊級預案完成50%,實現移動終端遠程查詢,作戰指揮中心遠程推送。

五、建設「智慧」社會消防安全管理系統

1、各地特別是國家「智慧城市」試點地區,要主動爭取當地政府支持,協調綜治、科技、工信、住建等部門,將「智慧消防」納入「智慧城市」建設總體規劃,在匯聚整合消防部門數據資源、強化「縱向貫通」基礎上,重點強化與政府有關部門數據的「橫向交換」,形成外部數據「為我所用」、輸送數據「共治共享」的工作格局。

2、提請當地政府將「智慧消防」嵌入「智慧城市」管理,重點將監管部門、行業部門消防管理責任納入城市綜合管理服務「一張網」,各司其職、各負其責,在各自行業領域同步落實消防管理,建立起政府統一領導下的監管部門、行業部門、基層組織、社會單位齊抓共管的消防安全責任體系。

3、積極創新社會消防管理,引導社會單位利用移動互聯網技術建立單位內部消防安全管理系統,實現消防安全信息網上錄入、巡查流程網上管理、檢查活動網上監督、整改質量網上考評、安全工作網上研判,強化落實主體責任。引導消防產品生產企業提供產品終身服務,鼓勵企業的遠程服務系統免費接收聯網用戶信息。結合社會信用信息平台建設,建立消防安全誠信信息系統,完善消防安全不良行為「黑名單」制度,建立消防誠信信息與相關部門的互通互認機制。

4、拓展社會公眾消防安全服務平台功能,完善「統一受理、協同辦理、按需發布」的服務模式,豐富信息服務資源,創新信息服務手段,增加執法透明度、簡化優化服務流程、提高辦事效率、提升群眾滿意度。

六、工作要求

1、強化組織領導

各總隊要成立由主官負總責的「智慧消防」建設工作領導小組,建立實體化運行機制,統籌「智慧消防」建設規劃、項目把關、指揮決策和對外協調。要針對「五大項目」逐項制定具體實施方案和工作計劃,建立完善保障獎懲機制,統一規劃、統一部署、協調推進,確保項目有效推進,取得實效。

2、強化頂層設計

按照部消防局《消防信息化「十三五」總體規劃》要求,堅持以塊為主、條塊結合,部消防局負責制定下發相關指導意見、消防大數據平台建設技術方案,總隊負責本地「五大項目」統籌規劃與協調建設,支隊負責本地「五大項目」的業務支撐與實戰應用。

3、強化建設保障

要充分利用「智慧城市」試點建設的契機,積極爭取地方政府和有關部門多層次、多渠道立項,加大建設投入,落實資金預算,納入重點保障。要在政府的統一領導下,引導鼓勵社會資本參與「五大項目」建設,按照政府購買服務或外包租賃等方式,落實有關建設經費。

4、強化考核評估

要將「五大項目」建設納入年度重點工作任務,按照項目化管理的方式,對目標任務推進落實情況實施過程評估、督導、考核。對工作成績突出的單位和個人給予表彰獎勵,對任務推進緩慢、工作成效不明顯的要及時約談。

一張網,「網」羅社會萬象;眾多格,「格」除死角盲區。開展消防網格化管理工作以來,鄭州市在進行夏季和冬季火災預防工作中,通過綜治系統指派,群發指令到網格員的社管通手機上,即可完成指派、統計、監督等作用,不僅大大提高了消防工作的信息化水平,從而也夯實了消防安全的基層基礎工作。

在推動消防網格化管理過程中,鄭州市把政府為民辦實事項目——微型消防站建設、居民樓安裝簡易消防設施等職責任務落實到每個網格,由網格員負責推動。同時,網格員通過日常巡查,對發現的火情隱患信息通過社管通手機及時上傳上報,請求街道和轄區消防大隊處理,對上級交辦的各類消防問題進行實地督辦。群眾也可以通過街道辦設的微信服務公眾號掌握消防安全防範知識,並通過微信直接把身邊的消防安全隱患上傳到公眾號,在社區形成 「人人關注消防、人人參與消防」的氛圍,確保了全市火災形勢的持續平穩。

金鵬信息智慧消防解決方案

Ⅳ 數字地質調查資料庫資料匯交技術要求的研究與意義

馬飛飛1 李莉2 郭慧錦1

(1.中國地質調查局發展研究中心;2.中國地質調查局武漢地質調查中心)

摘要 中國地質調查局自1999年以來,在數字區域地質調查基本理論與技術方面,開展了系統全面的研究,由2004年數字填圖系統RGMap 2.0升級到2010年的數字地質調查系統DGSS(2010)。自開展此項技術工作,獲得了大量的數字地質調查資料,但數字地質調查資料的匯交仍沒有標准規范,影響了數字地質調查資料的匯交和驗收工作。本文提出了數字地質調查資料庫資料的匯交技術要求,包括數字地質調查資料庫資料匯交內容、格式要求、文件的編制、組織形式、質量要求及數據檢查等幾個方面的內容。本匯交技術要求的研究和探索為地質資料匯交人和地質資料管理機構接收、檢查地質調查資料提供了依據。

關鍵詞 數字地質調查 資料庫資料 匯交技術要求

1 研究現狀

中國地質調查局自1999年以來,在數字區域地質調查基本理論與技術方面,開展了系統全面的研究,並於2001年和2002年,相繼開展了1:5萬和1:25萬數字試點填圖。至2003年,研製開發的數字填圖系統(RGMap),它使野外數據採集的空間定位及數據採集方法發生了根本性變化,填補了我國地學信息野外現場數字採集技術的空白。傳統的紙質筆記簿和手圖,被具有GPS定位與導航顯示、漫遊的數字化地理底圖、具圖形編輯功能和電子筆記簿功能的野外數據採集系統所取代。這種全新的野外數據採集系統具有可視化野外定位、標繪各種地質體和地質界線、地質現象描述、產狀記錄、采樣、素描、照片、野外實測剖面數據等多源空間數據的獲取、存儲與管理的功能,並採用了結構化資料庫與非結構化地質觀察現象文本資料庫相結合的特點,輔以PRB 字典庫,為地質學家野外調查提供了多方位技術支撐。通過4幅1:5萬和10幅1:25萬數字試點填圖試點應用,使數字填圖系統已臻於完善,為中國地質調查局全面推廣數字填圖方法奠定了良好的基礎。2004年,數字填圖工作在全國正式全面展開,從此,我國在全球真正率先實現了區域地質調查中的計算機技術應用全程化[1~5]

2004年,數字填圖系統由數字RGMap-RGMapGIS-MEMap-MEMapGIS-MEExplo五大子系統構成。RGMap為數字填圖野外數據採集子系統、RGMapGIS為數字填圖室內綜合整理與數據處理子系統、MEMap為礦產資源調查評價探礦工程數據採集子系統、MEMapGIS為礦產資源調查評價礦區數據、控礦工程數據的數據綜合、處理、制圖子系統、MEExplo為礦產資源調查評價、資源量估算與礦體三維可視化子系統。

2010年,將數字填圖野外數據採集系統、數字剖面系統、固體礦產野外數據採集系統、礦產資源調查數據處理與綜合分析子系統、資源儲量估算系統和礦體三維顯示系統等6大系統集成為一體化的數字地質調查系統軟體DGSS(2010)。該軟體系統由4大子系統構成:①數字地質填圖系統,RGMAP(Regional Geological Mapping System);②探礦工程數據編錄系統,PEData(Prospecting Engineering Data Documentation System);③數字地質調查信息綜合平台,DGSInfo(Digital Geological Survey Information System);④資源儲量估算與礦體三維建模信息系統,REInfo(Reserve Estimate &3D Modeling Information System)。

數字地質調查項目資料庫資料匯交到目前仍沒有標准規范而不能為廣大地質工作者和國民經濟提供更好的服務,很多數字地質調查項目已經完成工作,但是地質資料卻不能及時匯交並提供利用,匯交人不清楚數字地質調查資料庫資料應匯交哪些內容,數據應如何組織,接收人不知道如何接收、檢查數字地質調查資料庫資料,數字地質調查技術方法目前主要運用於1:5萬、1:25萬區域地質調查和1:5萬礦產遠景調查項目,因此筆者重點就區域地質調查和礦產遠景調查數字地質調查資料庫資料的匯交進行了研究和探索,現從數字地質調查資料庫資料匯交內容、組織形式、質量要求、數據的驗收等幾個方面進行了論述。

2 匯交內容

2.1 區域地質調查形成的數字地質調查資料庫資料的匯交內容

匯交內容包括:背景圖層庫、圖幅PRB庫、野外手圖庫、採集日備份、樣品資料庫、實際材料圖庫、編稿原圖庫、空間資料庫、綜合成果、遙感、勘探工程庫、基本信息、數字剖面等。

2.2 礦產遠景調查形成的數字地質調查資料庫資料的匯交內容

匯交內容主要包括:背景圖層庫、圖幅PRB庫、野外手圖庫、採集日備份、樣品資料庫、實際材料圖庫、編稿原圖庫、空間資料庫、地球化學庫、地球物理庫、基本信息庫、勘探工程庫、遙感、綜合成果、大比例尺綜合圖和數字剖面、元數據和各類建庫文檔等。

3 格式要求

數字地質調查資料庫文件的格式要求嚴格按照數字地質調查系統自動生成的電子文件格式匯交,電子文件的命名、屬性結構不得更改;各類成果庫的整理應符合相關的資料庫建庫標准(如地質圖空間資料庫標准、戰略性礦產遠景調查資料庫建庫(數據字典)標准)等。

軟體類電子文件的格式原則上不作限制,主要提供項目開展中所使用的軟體或根據開發時所用的工具軟體而提交相應格式的電子文件。

資料庫文件的匯交,應包括數字地質調查項目實施過程中形成的全部資料庫文件、元數據文件和資料庫所涉及的字典庫與系統庫,以使資料庫能夠正常打開,匯交的資料庫只能使用數字地質調查系統自帶的系統庫(SLIB)文件;確保資料庫中各個圖層齊全,屬性完整,參數正確;刪除資料庫中的冗餘文件及文件夾。匯交資料庫的同時需匯交與資料庫相關的建庫工作報告、資料庫驗收意見、資料庫驗收報告等文字材料。

以數據為主的資料庫(如關系型資料庫、屬性資料庫)應匯交包括所有數據在內的表文件以及與之相關的索引文件、備注文件、容器文件等。

以圖形為主的資料庫應匯交所有的圖形文件、圖層文件、外掛庫和瀏覽資料庫所必需的系統庫、字型檔、屬性庫、外部鏈接文件等相關文件以及與資料庫關系密切的其他文件和文件夾。

以光柵圖像為主的資料庫應匯交所有圖像文件及與之相關的其他文件和文件夾。

軟體匯交,應包括最終形成的軟體系統的安裝程序、源代碼以及軟體使用說明等相關文件和技術文檔,如有測試數據也應一並匯交。

非獨立使用的軟體應提供相應的支持軟體或控制項,無法提供時應在電子文件登記表的「電子文檔說明」中說明獲取的方式和途徑及其版本、生產商等相關信息。

4 文件的編制

資料庫和軟體類電子文件匯交時,資料庫類文件應保持數字地質調查系統自身文件的組織方式、目錄結構和屬性結構。資料庫類文件編制時按照數字地質調查系統自動生成的文件夾形式進行存放;地質圖空間資料庫按照《DD2006-06 數字地質圖空間資料庫標准》進行編制,裝飾圖層分層進行整飾,整飾圖層的命名採用被整飾圖層名前面加「a」表示,如 a_GeoPolygon.wl,a_GeoPolygon.w,地理圖層的命名和屬性採用國家地理信息中心提供的地理底圖的命名和屬性進行編制;其他庫文件按照戰略性礦產遠景調查資料庫建庫(數據字典)標准進行建庫; 元數據按照《DD2006-05地質信息元數據標准》,採用元數據採集器進行編制。

「安裝程序」、「源代碼」、「技術文檔」、「測試數據」等類別分類建立文件夾存放相應的電子文件。

資料庫或軟體類所用到各種工具軟體的系統庫、字型檔等相關文件要以獨立文件夾的形式與其他與之相關的電子文件存放在一起。如果是整個系統共用一套文件,則可將它們存放在上一級文件夾中,並在電子文件登記表的「電子文檔說明」中給予說明。

5 組織形式

每一份數字地質調查資料電子文檔以一個獨立的子目錄(一級子目錄)置於根目錄下,子目錄名即為該份資料的電子文檔號,該份電子文檔所有的電子文件均置於此子目錄下。在一級子目錄下建立兩個名為「源電子文件」和「存檔電子文件」的二級子目錄,分別用於存放該份電子文檔的源電子文件和存檔電子文件。在「源電子文件」子目錄下建立一個名為「資料庫和軟體」的三級子目錄,將數字地質調查技術形成的所有資料庫資料按照其系統形成的原有的目錄結構分類存放到該子目錄中。

6 質量要求

數字地質調查資料庫資料內容齊全,包括技術文檔、原始資料資料庫、綜合成果資料庫、元數據、建庫工作報告和質量控制文檔等內容。數字地質調查資料庫資料需經過專家驗收,提供正式的驗收記錄表、驗收意見和驗收報告等。各類庫文件應按相關規范完成資料庫的建庫工作任務(重點是空間資料庫、地球化學庫、地球物理庫、樣品資料庫、綜合成果庫的建庫)。資料庫結構和數據表關聯關系正確,該資料庫文件可由數字地質調查系統運行。數據種類應與報告一致。數據必須分圖幅組織。所有的資料庫文件必須有正確的投影參數。

7 數據檢查

7.1 齊全性檢查

對照任務書、成果報告、成果報告評審意見及資料庫文件的驗收報告或驗收意見書檢查數字地質調查資料庫文件數據是否匯交齊全,檢查內容參照數字地質調查資料庫資料匯交內容。

7.2 完整性檢查

對照數字地質調查資料庫資料匯交內容與資料庫資料電子文檔的組織形式檢查數據的完整性。重點檢查文件、圖層、數據表、空間實體的完整性,數據量缺失和數據項缺失,注記的完整性和相關技術文檔的完整性等。

7.3 正確性檢查

①按照數字地質調查資料庫資料電子文檔的組織形式檢查資料庫文件組織形式的正確性。②對照成果圖檢查空間資料庫文件是否為最終的成果數據,首先檢查圖元個數的一致性,圖元是否有多餘或遺漏;其次檢查圖元數據相對位置的正確性,確保空間資料庫文件是最終的成果數據。③數據文件及文件夾命名的正確性:文件存放位置的正確性及數據屬性中上下標、大小寫等書寫格式的正確性。④系統庫文件正確性的檢查。⑤數據參數的正確性檢查。⑥整飾文件的正確性。重點檢查整飾圖層文件的命名、內容等是否符合相關標准與技術要求。⑦空間資料庫的正確性。按照地質圖空間資料庫文件存儲組織結構表進行空間資料庫的檢查。⑧地理數據的正確性。重點檢查地理數據的命名和屬性的正確性;地理圖層的命名和屬性需按照國家地理信息中心提供的地理底圖進行命名和屬性結構的設置。

8 意義

數字地質調查資料庫資料匯交技術要求適用於區域地質調查、區域礦產調查、地質勘探等地質工作採用數字地質調查系統形成的資料的製作、接收、驗收和匯交。區域地球化學調查、區域地球物理調查、礦產評價等採用數字地質調查技術形成的資料可參照本匯交技術要求。

本技術要求中的數字地質調查資料庫資料的匯交內容、格式要求、文件的編制、質量要求、數據檢查及組織形式示例對地質資料匯交人如何匯交數字地質調查資料,資料管理機構的資料管理人員接收、驗收此類地質資料起到一定的指導作用,為今後地質資料的社會化服務打下了堅實的基礎,使得地質資料的社會化服務水平更上一個台階。

參考文獻

[1]李超嶺,於慶文,楊東來,等.PRB數字地質填圖技術研究[J].地球科學—中國地質大學學報,2003,28(4):377~383.

[2]李超嶺,張克信,牆芳躅,等.數字區域地質調查系統技術研究[J].地球科學進展,2002,17(5):763~768.

[3]李超嶺,楊東來,於慶文,等.數字地質調查與填圖技術方法研究[J].中國地質,2002,29(2):213~217.

[4]李超嶺,於慶文,張克信,等.數字區域地質調查基本理論與技術方法[M].北京:地質出版社,2003.

[5]李超嶺,張克信,於慶文,等.數字填圖中不同階段數據模型的繼承技術[J].地球科學,2004,29(6):745~752.

熱點內容
超凡先鋒配置不行怎麼辦 發布:2025-05-15 23:27:54 瀏覽:530
win7取消加密 發布:2025-05-15 23:26:37 瀏覽:470
不用internet打開ftp 發布:2025-05-15 23:06:00 瀏覽:153
sql字元串取數字 發布:2025-05-15 22:57:45 瀏覽:124
推薦編程課 發布:2025-05-15 22:34:12 瀏覽:618
表拒絕訪問 發布:2025-05-15 22:29:37 瀏覽:978
電腦怎樣解壓文件 發布:2025-05-15 22:25:32 瀏覽:439
dns伺服器怎麼看 發布:2025-05-15 22:17:27 瀏覽:151
3dm的壓縮包 發布:2025-05-15 22:09:23 瀏覽:662
和存儲字長 發布:2025-05-15 21:54:09 瀏覽:515