当前位置:首页 » 操作系统 » 标绘源码

标绘源码

发布时间: 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 13:42:51 浏览:259
在计算机中ftp的中文 发布:2025-05-15 13:41:07 浏览:999
国网校招要网签密码和账号干什么 发布:2025-05-15 13:40:25 浏览:178
java分 发布:2025-05-15 13:34:36 浏览:846
如何下载卡巴斯基安卓版 发布:2025-05-15 13:34:36 浏览:480
排序函数c语言 发布:2025-05-15 13:06:28 浏览:6
韩服lol挂机脚本 发布:2025-05-15 12:42:56 浏览:461
监控存储服务器如何调试 发布:2025-05-15 12:36:30 浏览:219
一万级净化车间有哪些配置 发布:2025-05-15 12:16:41 浏览:98
javazip解压加密 发布:2025-05-15 12:15:02 浏览:943