文档库 最新最全的文档下载
当前位置:文档库 › Bag-of-words模型

Bag-of-words模型

Bag-of-words模型
Bag-of-words模型

-目标识别之用Bag-of-words模型表示一幅图像

出处:https://www.wendangku.net/doc/eb13678356.html,/v_JULY_v。

?引言

本blog之前已经写了四篇关于SIFT的文章,请参考九、图像特征提取与匹配之SIFT

算法,九(续)、sift算法的编译与实现,九(再续)、教你一步一步用c语言实现sift 算法、上,及九(再续)、教你一步一步用c语言实现sift算法、下。

上述这4篇文章对SIFT算法的原理和C语言实现都做了详细介绍,用SIFT做图像匹配效果不错。现在考虑更为高层的应用,将SIFT算法应用于目标识别:发现图像中包含的物体类别,这是计算机视觉领域最基本也是最重要的任务之一。

且原经典算法研究系列可能将改名为算法珠玑--经典算法的通俗演义。改名考虑到三点:1、不求面面俱到所有算法,所以掏炼,谓之“珠玑”;2、突出本博客内算法内容的特色-通俗易懂、简明直白,谓之“通俗”;3、侧重经典算法的研究与实现,以及实际应用,谓之“演义”。

OK,闲话少说,上一篇我们介绍了六(续)、从KMP算法一步一步谈到BM算法。下面

我们来介绍有关SIFT算法的目标识别的应用--Bag-of-words模型。

?Bag-of-words模型简介

Bag-of-words模型是信息检索领域常用的文档表示方法。在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的,不依赖于其它单词是否出现。也就是说,文档中任意一个位置出现的任何单词,都不受该文档语意影响而独立选择的。例如有如下两个文档:

1:Bob likes to play basketball, Jim likes too.

2:Bob also likes to play football games.

基于这两个文本文档,构造一个词典:

Dictionary = {1:”

Bob”, 2. “like”, 3. “to”, 4. “play”, 5. “basketball”, 6. “also”, 7. “football”, 8. “g ames”, 9. “Jim”, 10. “too”}。

这个词典一共包含10个不同的单词,利用词典的索引号,上面两个文档每一个都可以用一个10维向量表示(用整数数字0~n(n为正整数)表示某个单词在文档中出现的次数):

1:[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]

2:[1, 1, 1, 1 ,0, 1, 1, 1, 0, 0]

向量中每个元素表示词典中相关元素在文档中出现的次数(下文中,将用单词的直

方图表示)。不过,在构造文档向量的过程中可以看到,我们并没有表达单词在原来句子中

出现的次序(这是本Bag-of-words模型的缺点之一,不过瑕不掩瑜甚至在此处无关紧要)。

Bag-of-words模型的应用

Bag-of-words模型的适用场合

现在想象在一个巨大的文档集合D,里面一共有M个文档,而文档里面的所有单词提取出来后,一起构成一个包含N个单词的词典,利用Bag-of-words模型,每个文档都可以被表示成为一个N维向量,计算机非常擅长于处理数值向量。这样,就可以利用计算机来完成海量文档的分类过程。

考虑将Bag-of-words模型应用于图像表示。为了表示一幅图像,我们可以将图像看作文档,即若干个“视觉词汇”的集合,同样的,视觉词汇相互之间没有顺序。

图1将Bag-of-words模型应用于图像表示

由于图像中的词汇不像文本文档中的那样是现成的,我们需要首先从图像中提取出相互独立的视觉词汇,这通常需要经过三个步骤:(1)特征检测,(2)特征表示,(3)单词

本的生成,请看下图2:

图2从图像中提取出相互独立的视觉词汇

通过观察会发现,同一类目标的不同实例之间虽然存在差异,但我们仍然可以找到它们之间的一些共同的地方,比如说人脸,虽然说不同人的脸差别比较大,但眼睛,嘴,鼻子等一些比较细小的部位,却观察不到太大差别,我们可以把这些不同实例之间共同的部位提取出来,作为识别这一类目标的视觉词汇。

而SIFT算法是提取图像中局部不变特征的应用最广泛的算法,因此我们可以用SIFT算法从图像中提取不变特征点,作为视觉词汇,并构造单词表,用单词表中的单词表示一幅图像。

Bag-of-words模型应用三步

接下来,我们通过上述图像展示如何通过Bag-of-words模型,将图像表示成数值向量。现在有三个目标类,分别是人脸、自行车和吉他。

Bag-of-words模型的第一步是利用SIFT算法,从每类图像中提取视觉词汇,将所有的视觉词汇集合在一起,如下图3所示:

图3 从每类图像中提取视觉词汇

第二步是利用K-Means算法构造单词表。K-Means算法是一种基于样本间相似性度量的间接聚类方法,此算法以K为参数,把N个对象分为K个簇,以使簇内具有较高的相似度,而簇间相似度较低。SIFT提取的视觉词汇向量之间根据距离的远近,可以利用K-Means算法将词义相近的词汇合并,作为单词表中的基础词汇,假定我们将K设为4,那么单词表的

构造过程如下图4所示:

图4 利用K-Means算法构造单词表

第三步是利用单词表的中词汇表示图像。利用SIFT算法,可以从每幅图像中提取很多个特征点,这些特征点都可以用单词表中的单词近似代替,通过统计单词表中每个单词在图像中出现的次数,可以将图像表示成为一个K=4维数值向量。请看下图5:

图5每幅图像的直方图表示上图5中,我们从人脸、自行车和吉他三个目标类图像中提取出的不同视觉词汇,而构造的词汇表中,会把词义相近的视觉词汇合并为同一类,经过合并,词汇表中只包含了四个视觉单词,分别按索引值标记为1,2,3,4。通过观察可以看到,它们分别属于自行车、

人脸、吉他、人脸类。统计这些词汇在不同目标类中出现的次数可以得到每幅图像的直方图表示(我们假定存在误差,实际情况亦不外如此):

人脸:[3,30,3,20]

自行车:[20,3,3,2]

吉他:[8,12,32,7]

其实这个过程非常简单,就是针对人脸、自行车和吉他这三个文档,抽取出相似的部分(或者词义相近的视觉词汇合并为同一类),构造一个词典,词典中包含4个视觉单词,即Dictionary = {1:”自行车”, 2. “人脸”, 3. “吉他”, 4. “人脸类”},最终人脸、自行车和吉他这三个文档皆可以用一个4维向量表示,最后根据三个文档相应部分出现的次数画成了上面对应的直方图。

需要说明的是,以上过程只是针对三个目标类非常简单的一个示例,实际应用中,为了达到较好的效果,单词表中的词汇数量K往往非常庞大,并且目标类数目越多,对应的K 值也越大,一般情况下,K的取值在几百到上千,在这里取K=4仅仅是为了方便说明。

下面,我们再来总结一下如何利用Bag-of-words模型将一幅图像表示成为数值向量:?第一步:利用SIFT算法从不同类别的图像中提取视觉词汇向量,这些向量代表的是图像中局部不变的特征点;

?第二步:将所有特征点向量集合到一块,利用K-Means算法合并词义相近的视觉词汇,构造一个包含K个词汇的单词表;

?第三步:统计单词表中每个单词在图像中出现的次数,从而将图像表示成为一个K 维数值向量。

下面我们按照以上步骤,用C++一步步实现上述过程。

?C++逐步实现:Bag-of-words模型表示一幅图像

在具体编码之前,我们需要事先搭配开发环境。

一.搭建开发环境

使用的开发平台是windows xp sp3 + vs2010(windows xp sp3 + vc6.0的情况,请参考此文:九(续)、sift算法的编译与实现)

1. 从Rob Hess的个人主页:https://www.wendangku.net/doc/eb13678356.html,/hess/code/sift/,下载最新版本的sift开源库源代码sift-latest_win.zip;

2. 由于sift-latest_win.zip 要求的opencv版本是2.0以上,也下载最新版

本OpenCV-2.2.0-win32-vs2010.ex e,运行安装程序将opencv安装在本地某路径下。例如,我安装在D盘根目录下。

3. 运行vs2010,建立一个空的控制台应用程序,取名bow。

4. 配置opencv环境。在vs2010下选择project菜单下的bow property子菜单,调出bow property pages对话框,需要配置的地方有三处:在vc++ Directory选项里需要配置Include Directories和Library Directories,在Linker选项卡的Input选项里需要配置Additional Dependencies。

至此,开发环境全部搭建并配置完毕。

二.创建c++类CSIFTDiscriptor

为了方便使用,我们将SIFT库用C++类CSIFTDiscriptor封装,该类可以计算并获取指定图像的特征点向量集合。类的声名在SIFTDiscriptor.h文件中,内容如下:

view plaincopy to clipboardprint?

1.#ifndef _SIFT_DISCRIPTOR_H_

2.#define _SIFT_DISCRIPTOR_H_

3.#include

4.#include

5.#include

6.

7.extern"C"

8.{

9.#include "../sift/sift.h"

10.#include "../sift/imgfeatures.h"

11.#include "../sift/utils.h"

12.};

13.

14.class CSIFTDiscriptor

15.{

16.public:

17.int GetInterestPointNumber()

18. {

19.return m_nInterestPointNumber;

20. }

21.struct feature *GetFeatureArray()

22. {

23.return m_pFeatureArray;

24. }

25.public :

26.void SetImgName(const std::string &strImgName)

27. {

28. m_strInputImgName = strImgName;

29. }

30.int CalculateSIFT();

31.public:

32. CSIFTDiscriptor(const std::string &strImgName);

33. CSIFTDiscriptor()

34. {

35. m_nInterestPointNumber = 0;

36. m_pFeatureArray = NULL;

37. }

38. ~CSIFTDiscriptor();

39.private:

40. std::string m_strInputImgName;

41.int m_nInterestPointNumber;

42. feature *m_pFeatureArray;

43.};

44.#endif

成员函数实现在SIFTDiscriptor.cpp文件中,其中,CalculateSIFT函数完成特征点的提取和计算,其主要内部流程如下:

1) 调用OpenCV函数cvLoadImage加载输入图像;

2) 为了统一输入图像的尺寸,CalculateSIFT函数的第二步是调整输入图像的尺寸,

这通过调用cvResize函数实现;

3) 如果输入图像是彩色图像,我们需要首先将其转化成灰度图,这通过调用

cvCvtColor函数实现;

4) 调用SIFT库函数sift_feature获取输入图像的特征点向量集合和特征点个数。

view plaincopy to clipboardprint?

1.#include "SIFTDiscriptor.h"

2.int CSIFTDiscriptor::CalculateSIFT()

3.{

4. IplImage *pInputImg = cvLoadImage(m_strInputImgName.c_str());

5.if (!pInputImg)

6. {

7.return -1;

8. }

9.int nImgWidth = 320; //训练用标准图像大小

10.double dbScaleFactor = pInputImg->width / 300.0; //缩放因子

11. IplImage *pTmpImg = cvCreateImage(cvSize(pInputImg->width / dbScaleFactor, pInputImg->height / dbScaleF

actor),

12. pInputImg->depth, pInputImg->nChannels);

13. cvResize(pInputImg, pTmpImg); //缩放

14. cvReleaseImage(&pInputImg);

15.

16.if (pTmpImg->nChannels != 1) //非灰度图

17. {

18. IplImage *pGrayImg = cvCreateImage(cvSize(pTmpImg->width, pTmpImg->height),

19. pTmpImg->depth, 1);

20. cvCvtColor(pTmpImg, pGrayImg, CV_RGB2GRAY);

21. m_nInterestPointNumber = sift_features(pGrayImg, &m_pFeatureArray);

22. cvReleaseImage(&pGrayImg);

23. }

24.else

25. {

26. m_nInterestPointNumber = sift_features(pTmpImg, &m_pFeatureArray);

27. }

28. cvReleaseImage(&pTmpImg);

29.return m_nInterestPointNumber;

30.}

31.CSIFTDiscriptor::CSIFTDiscriptor(const std::string &strImgName)

32.{

33. m_strInputImgName = strImgName;

34. m_nInterestPointNumber = 0;

35. m_pFeatureArray = NULL;

36. CalculateSIFT();

37.}

38.CSIFTDiscriptor::~CSIFTDiscriptor()

39.{

40.if (m_pFeatureArray)

41. {

42. free(m_pFeatureArray);

43. }

44.}

三.创建c++类CImgSet,管理实验图像集合

Bag-of-words模型需要从多个目标类图像中提取视觉词汇,不同目标类的图像存储在不同子文件夹中,为了方便操作,我们设计了一个专门的类CImgSet用来管理图像集合,声明在文件ImgSet.h中:

view plaincopy to clipboardprint?

1.#ifndef _IMG_SET_H_

2.#define _IMG_SET_H_

3.#include

4.#include

5.#pragma comment(lib, "shlwapi.lib")

6.class CImgSet

7.{

8.public:

9. CImgSet (const std::string &strImgDirName) : m_strImgDirName(strImgDirName+"//"), m_nImgNumber(0){}

10.int GetTotalImageNumber()

11. {

12.return m_nImgNumber;

13. }

14. std::string GetImgName(int nIndex)

15. {

16.return m_szImgs.at(nIndex);

17. }

18.int LoadImgsFromDir()

19. {

20.return LoadImgsFromDir("");

21. }

22.private:

23.int LoadImgsFromDir(const std::string &strDirName);

24.private:

25.typedef std::vector IMG_SET;

26. IMG_SET m_szImgs;

27.int m_nImgNumber;

28.const std::string m_strImgDirName;

29.};

30.#endif

31.

32.//成员函数实现在文件ImgSet.cpp中:

33.#include "ImgSet.h"

34.#include

35.#include

36.

37.int CImgSet::LoadImgsFromDir(const std::string &strSubDirName)

38.{

39. WIN32_FIND_DATAA stFD = {0};

40. std::string strDirName;

41.if ("" == strSubDirName)

42. {

43. strDirName = m_strImgDirName;

44. }

45.else

46. {

47. strDirName = strSubDirName;

48. }

49. std::string strFindName = strDirName + "/ int CImgSet::LoadImgsFromDir(const std::string &strSubDirName)

{ WIN32_FIND_DATAA stFD = {0}; std::string strDirName; if ("" == strSubDirName) { strDirName =

m_strImgDirName; } else { strDirName = strSubDirName; } std::string strFindName = strDirName + "//*";

HANDLE hFile = FindFirstFileA(strFindName.c_str(), &stFD); BOOL bExist = FindNextFileA(hFile, &stFD); for (;bExist;) { std::string strTmpName = strDirName + stFD.cFileName; if (strDirName + "." == strTmpName || strDirName + ".." == strTmpName) { bExist = FindNextFileA(hFile, &stFD); continue; } if

(PathIsDirectoryA(strTmpName.c_str())) { strTmpName += "//"; LoadImgsFromDir(strTmpName); bExist =

FindNextFileA(hFile, &stFD); continue; } std::string strSubImg = strDirName + stFD.cFileName;

m_szImgs.push_back(strSubImg); bExist = FindNextFileA(hFile, &stFD); } m_nImgNumber = m_szImgs.size();

return m_nImgNumber; }

LoadImgsFromDir递归地从图像文件夹中获取所有实验用图像名,包括子文件夹。该函数内部通过循环调用windows API函数FindFirstFile和FindNextFile来找到文件夹中所有图像的名称。

四.创建CHistogram,生成图像的直方图表示

view plaincopy to clipboardprint?

1.//ImgHistogram.h

2.

3.#ifndef _IMG_HISTOGRAM_H_

4.#define _IMG_HISTOGRAM_H_

5.

6.#include

7.#include "SIFTDiscriptor.h"

8.#include "ImgSet.h"

9.

10.const int cnClusterNumber = 1500;

11.const int ciMax_D = FEATURE_MAX_D;

12.

13.class CHistogram

14.{

15.public:

16.void SetTrainingImgSetName(const std::string strTrainingImgSet)

17. {

18. m_strTrainingImgSetName = strTrainingImgSet;

19. }

20.int FormHistogram();

21. CvMat CalculateImgHistogram(const string strImgName, int pszImgHistogram[]);

22. CvMat *GetObservedData();

23. CvMat *GetCodebook()

24. {

25.return m_pCodebook;

26. }

27.void SetCodebook(CvMat *pCodebook)

28. {

29. m_pCodebook = pCodebook;

30. m_bSet = true;

31. }

32.public:

33. CHistogram():m_pszHistogram(0), m_nImgNumber(0), m_pObservedData(0), m_pCodebook(0), m_bSet(fa

lse){}

34. ~CHistogram()

35. {

36.if (m_pszHistogram)

37. {

38.delete m_pszHistogram;

39. m_pszHistogram = 0;

40. }

41.if (m_pObservedData)

42. {

43. cvReleaseMat(&m_pObservedData);

44. m_pObservedData = 0;

45. }

46.if (m_pCodebook && !m_bSet)

47. {

48. cvReleaseMat(&m_pCodebook);

49. m_pCodebook = 0;

50. }

51. }

53.bool m_bSet;

54. CvMat *m_pCodebook;

55. CvMat *m_pObservedData;

56. std::string m_strTrainingImgSetName;

57.int (*m_pszHistogram)[cnClusterNumber];

58.int m_nImgNumber;

59.};

60.#endif

61.

62.#include "ImgHistogram.h"

63.int CHistogram::FormHistogram()

64.{

65.int nRet = 0;

66. CImgSet iImgSet(m_strTrainingImgSetName);

67. nRet = iImgSet.LoadImgsFromDir();

68.

69.const int cnTrainingImgNumber = iImgSet.GetTotalImageNumber();

70. m_nImgNumber = cnTrainingImgNumber;

71. CSIFTDiscriptor *pDiscriptor = new CSIFTDiscriptor[cnTrainingImgNumber];

72.int nIPNumber(0) ;

73.for (int i = 0; i < cnTrainingImgNumber; ++i) //计算每一幅训练图像的SIFT描述符

74. {

75.const string strImgName = iImgSet.GetImgName(i);

76. pDiscriptor[i].SetImgName(strImgName);

77. pDiscriptor[i].CalculateSIFT();

78. nIPNumber += pDiscriptor[i].GetInterestPointNumber();

79. }

80.

81.double (*pszDiscriptor)[FEATURE_MAX_D] = new double[nIPNumber][FEATURE_MAX_D]; //存储

所有描述符的数组。每一行代表一个IP的描述符

82. ZeroMemory(pszDiscriptor, sizeof(int) * nIPNumber * FEATURE_MAX_D);

83.int nIndex = 0;

84.for (int i = 0; i < cnTrainingImgNumber; ++i) //遍历所有图像

85. {

86.struct feature *pFeatureArray = pDiscriptor[i].GetFeatureArray();

87.int nFeatureNumber = pDiscriptor[i].GetInterestPointNumber();

88.for (int j = 0; j < nFeatureNumber; ++j) //遍历一幅图像中所有的IP(Interesting Point兴趣点

89. {

90.for (int k = 0; k < FEATURE_MAX_D; k++)//初始化一个IP描述符

91. {

92. pszDiscriptor[nIndex][k] = pFeatureArray[j].descr[k];

93. }

94. ++nIndex;

96. }

97. CvMat *pszLabels = cvCreateMat(nIPNumber, 1, CV_32SC1);

98.

99.//对所有IP的描述符,执行KMeans算法,找到cnClusterNumber个聚类中心,存储在pszClusterCenters

100.if (!m_pCodebook) //构造码元表

101. {

102. CvMat szSamples,

103. *pszClusterCenters = cvCreateMat(cnClusterNumber, FEATURE_MAX_D, CV_32FC1);

104. cvInitMatHeader(&szSamples, nIPNumber, FEATURE_MAX_D, CV_32FC1, pszDiscriptor);

105. cvKMeans2(&szSamples, cnClusterNumber, pszLabels,

106. cvTermCriteria( CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0 ),

107. 1, (CvRNG *)0, 0, pszClusterCenters); //

108. m_pCodebook = pszClusterCenters;

109. }

110.

111. m_pszHistogram = new int[cnTrainingImgNumber][cnClusterNumber]; //存储每幅图像的直方图表示,每一行对应一幅图像

112. ZeroMemory(m_pszHistogram, sizeof(int) * cnTrainingImgNumber * cnClusterNumber);

113.

114.//计算每幅图像的直方图

115. nIndex = 0;

116.for (int i = 0; i < cnTrainingImgNumber; ++i)

117. {

118.struct feature *pFeatureArray = pDiscriptor[i].GetFeatureArray();

119.int nFeatureNumber = pDiscriptor[i].GetInterestPointNumber();

120.// int nIndex = 0;

121.for (int j = 0; j < nFeatureNumber; ++j)

122. {

123.// CvMat szFeature;

124.// cvInitMatHeader(&szFeature, 1, FEATURE_MAX_D, CV_32FC1, pszDiscriptor[nIndex++]);

125.// double dbMinimum = 1.79769e308;

126.// int nCodebookIndex = 0;

127.// for (int k = 0; k < m_pCodebook->rows; ++k)//找到距离最小的码元,用最小码元代替原//来的词汇

128.// {

129.// CvMat szCode = cvMat(1, m_pCodebook->cols, m_pCodebook->type);

130.// cvGetRow(m_pCodebook, &szCode, k);

131.// double dbDistance = cvNorm(&szFeature, &szCode, CV_L2);

132.// if (dbDistance < dbMinimum)

133.// {

134.// dbMinimum = dbDistance;

135.// nCodebookIndex = k;

136.// }

137.// }

138.int nCodebookIndex = pszLabels->data.i[nIndex++]; //找到第i幅图像中第j个IP在Codebook中的索引值nCodebookIndex

139. ++m_pszHistogram[i][nCodebookIndex]; //0

140. }

141. }

142.

143.//资源清理,函数返回

144.// delete []m_pszHistogram;

145.// m_pszHistogram = 0;

146.

147. cvReleaseMat(&pszLabels);

148.// cvReleaseMat(&pszClusterCenters);

149.delete []pszDiscriptor;

150.delete []pDiscriptor;

151.

152.return nRet;

153.}

154.

155.//double descr_dist_sq( struct feature* f1, struct feature* f2 );

156.CvMat CHistogram::CalculateImgHistogram(const string strImgName, int pszImgHistogram[])

157.{

158.if ("" == strImgName || !m_pCodebook || !pszImgHistogram)

159. {

160.return CvMat();

161. }

162. CSIFTDiscriptor iImgDisp;

163. iImgDisp.SetImgName(strImgName);

164. iImgDisp.CalculateSIFT();

165.struct feature *pImgFeature = iImgDisp.GetFeatureArray();

166.int cnIPNumber = iImgDisp.GetInterestPointNumber();

167.// int *pszImgHistogram = new int[cnClusterNumber];

168.// ZeroMemory(pszImgHistogram, sizeof(int)*cnClusterNumber);

169.for (int i = 0; i < cnIPNumber; ++i)

170. {

171.double *pszDistance = new double[cnClusterNumber];

172. CvMat iIP = cvMat(FEATURE_MAX_D, 1, CV_32FC1, pImgFeature[i].descr);

173.for (int j = 0; j < cnClusterNumber; ++j)

174. {

175. CvMat iCode = cvMat(1, FEATURE_MAX_D, CV_32FC1);

176. cvGetRow(m_pCodebook, &iCode, j);

177. CvMat *pTmpMat = cvCreateMat(FEATURE_MAX_D, 1, CV_32FC1);

178. cvTranspose(&iCode, pTmpMat);

179.double dbDistance = cvNorm(&iIP, pTmpMat); //计算第i个IP与第j个code之间的距离180. pszDistance[j] = dbDistance;

181. cvReleaseMat(&pTmpMat);

182. }

183.double dbMinDistance = pszDistance[0];

184.int nCodebookIndex = 0; //第i个IP在codebook中距离最小的code的索引值

185.for (int j = 1; j < cnClusterNumber; ++j)

186. {

187.if (dbMinDistance > pszDistance[j])

188. {

189. dbMinDistance = pszDistance[j];

190. nCodebookIndex = j;

191. }

192. }

193. ++pszImgHistogram[nCodebookIndex];

194.delete []pszDistance;

195. }

196. CvMat iImgHistogram = cvMat(cnClusterNumber, 1, CV_32SC1, pszImgHistogram);

197.return iImgHistogram;

198.}

199.

200.CvMat *CHistogram::GetObservedData()

201.{

202. CvMat iHistogram;

203. cvInitMatHeader(&iHistogram, m_nImgNumber, cnClusterNumber, CV_32SC1, m_pszHistogram); 204. CvMat *m_pObservedData = cvCreateMat(iHistogram.cols, iHistogram.rows, CV_32SC1);

205. cvTranspose(&iHistogram, m_pObservedData);

206.return m_pObservedData;

207.}

本文完。

地球物理课程设计报告样本

《地球物理测井》课程设计 指导老师 专业地质学 班级 姓名 学号

一、课程设计目的: 通过对《地球物理测井》基本理论与方法的学习,对某实际测井资料进行岩性划分与评价、储层识别、物性评价及含油气性评价。获得常规测井资料分析的一般方法,目的是巩固课堂所学的的理论知识,加深对测井解释方法的理解,会用所学程序设计语言完成设计题目的程序编写,利用现有绘图软件完成数据成图,对所得结果做分析研究。 二、课程设计的主要内容: 1.运用所学的测井知识识别某油田裸眼井和套管井实际测井资料。 2.使用井径、自然伽马和自然电位划分砂泥岩井段划分渗透层和非渗透层。 3.根据密度、声波和中子孔隙度测井的特点,在渗透层应用三孔隙度测井曲线求出储层的平均孔隙度。 4.根据划分出的渗透层,读出裸眼井和生产井储层电阻率值。 5.根据阿尔奇公式计算裸眼井原始含油饱和度和剩余油饱和度。 6.根据开发过程中含油饱和度的变化,确定储层含油性的变化,并判断该储层的性质。 三、基本原理: (一)岩性划分 岩性是指岩石的性质类型等,包括细砂岩、粉砂岩、粗砂岩等,同时还包括碎屑成分、填隙物、粒间孔发育、颗粒分选、颗粒磨圆度、接触关系、胶结类型等方面。通过划分岩性和分析岩心资料总结岩性规律,其研究主要依据岩心资料,地质资料和测井资料等。通过分析取心井的岩心资料和地质资料以及测井曲线的响应特征来识别岩性,并建立在取心井上的泥质含量预测解释模型。一般常用岩性测井系列的自然伽马GR、自然电位SP、井径CAL 曲线来识别岩性。 1 定性划分岩性是利用测井曲线形态特征和测井曲线值相对大小,从长期生产实践中积累起来的划分岩性的规律性认识。首先掌握岩性区域地质的特点,如井剖面岩性特征、基本岩性特征、特殊岩性特征、层系和岩性组合特征及标准层特征等。其次,要通过钻井取心和岩屑录井资料与测井资料作对比分析,总结出用测井资料划分岩性的地区规律。表1为砂泥岩剖面上主要岩石测井特征。 岩性自然电位自然伽马微电极电阻率井径声波时差 泥岩泥岩基线高值低、平值低、平值大于钻头 直径 大于300 页岩近于泥岩基线高值低、平值低、平值较泥 岩高大于钻头 直径 大于300 粉砂岩明显异常中等值中等正幅度 差异低于砂岩小于钻头 直径 260-400 砂岩明显异常(Cw≠ Cmf)低值明显正幅度 差异 中等到高,致 密砂岩高 小于钻头 直径 250-450(幅度较 为稳定)

峨眉山地质概况及地球物理特征

峨眉山地质概况及地球物理特征 地质概况及地球物理特征 第一节地质概况 一、地层 井田内地层(见表1)有上二叠统峨眉山玄武岩组(PB)龙谭组(Pl)、下三22叠统飞仙关组(Tf)、永宁镇组(Tyn)及第四系Q。其岩性特征由新至老分述11 如下: 1、第四系(Q) 厚0,41m,以残积物、坡积物,崩积物滑坡堆积体为主。坡积物、残积物主要分布在同向坡及单斜谷中,崩积物分布于陡崖脚下,另外在井田内分布有大小6个滑坡区。冲积物主要分布在北盘江、发耳河两岸。与下伏基岩呈角度不整合接触。 2、三叠系下统永宁镇组(Tyn) 1 本区出露三段,四段被剥蚀,总厚平均405m。 3 第三段(Tyn):灰色薄至厚层状石灰岩夹泥质灰岩。区内可见残厚约100m1 左右。 2第二段(Tyn):以黄灰、灰绿争钙质泥岩及泥灰岩为主,夹钙质粉砂岩及细砂 1 岩,顶部25m左右为薄层泥灰岩,厚154-185m,平均厚160m。 1第一段(Tyn):以浅灰,灰色薄至中厚层状泥质灰岩,下部夹钙质泥岩薄层。1 厚144-150m,平均厚145m。 永宁镇组产:Tirolites SPinosus(刺提罗菊石)Pteria cf.murchisoni(莫氏翼蛤相似种)、Entoliun discites microtis(小耳海扇)等化石。 3、三叠系下统飞仙关组(Tf) 1

总厚约629m。分上、下两段,其上段分三个亚段。 2-3上段三亚段(Tf):黄灰色薄层状泥质灰岩夹钙质粉砂岩。底部20m左右为紫1 红色钙质泥岩,厚约161m。 发耳矿井地层简表表1 厚 地 度 (m 层 ) 0- 第四系(Q) 41 0- 90下第三系(E) 二上 桥1 统 三叠系(T) 组6 ( (6 T) 3

基于BIM模型制作施工模拟和模型演示总结

基于BIM模型制作施工模拟及演示动画的总结 李博关锦鹏 一、BIM模型介绍 公司拟定于2014年12月25日进行吕梁新城供水一期工程项目的投标,为在投标中展示公司技术实力与施工水平,投标前公司领导决定为该项目制作施工模拟及效果演示动画。 该项目模型由Revit软件制作,建模工作早于2014年9月份开始并于2014年11月中旬完成,模型包含净水厂的工艺管道系统、热力系统、排污系统、雨排水系统、自用水系统以及各车间互联管道等,此外还根据土建图纸制作了各车间的简化模型并标示名称。 二、动画制作过程 演示动画使用NavisWorks软件制作,于2012年12月15日开始12月21日结束,历时一周。动画内容包括整体鸟瞰和主工艺管道漫游、各管道系统展示、模拟施工演示、设计问题检查等内容。具体制作过程如下: 1、对模型中的管道系统及建筑物建立多个选择集,以便渲染及模拟施工时能够快速准确选择对象。 2、选择背景颜色并使用Autodesk Rendering为各个选择集中的对象染色,染色完成后对各对象颜色进行调整。 3、使用保存视点功能制作漫游动画并导出。 4、使用TimeLiner功能制作模拟施工演示动画并导出。

5、通过隐藏与显示使不同系统单独显示并截图保存。 6、使用Revit软件对模型显示的设计问题进行截图,修改问题后再次截图。 7、使用PPT制作图片的演示文稿以及各段视频间的衔接字母的演示文稿并导出动画。 8、使用视频合成软件将上述素材合成为一个视频,加背景音乐,加水印。 三、动画制作经验总结 1、在NavisWorks中建立选择集通常是通过从选择树中选取进行的。选择树中的根目录为Revit文件名称,二级目录为图层名称也即Revit文件中的标高名称。换言之,Revit建模过程中,在某个标高上建立的模型转化到NavisWorks中就必然出现在该标高名称的图层(即选择树根目录)中。NavisWorks图层中的项目名称与Revit建模时对项目的命名名称一致,而选择树则会将同一名称的对象和同一类型的对象归类。根据上述规律,我们在建模时如果将同系统管道与管件命名成相同名称或在指定的标高下建模,在NavisWorks的选择树中则极易选取。如图:

第六章综合地质地球物理方法解析

第六章综合地质地球物理方法 第一节不同勘探阶段的综合地质地球物理方法 一、成矿远景预测阶段 矿产勘查中要解决的首要问题是到什么地方去找矿,为此首先要选择成矿的远景靶区。地质、地球物理及地球化学人员通过地质调查与地球物理、地球化学测量获得的资料研究区域的构造、矿源层、成矿规律、成矿环境和成矿条件,预测成矿的远景区。 (一)地质任务 1.成矿的地质前提研究 在评价固体矿产成矿区的远景时,要研究岩浆控制条件、地层条件、岩性条件、地球化学条件及地貌条件等。其中主要的是岩浆、构造和地层控制条件,而区域和深部地质构造是控制全局的。已知与超基性岩紧密相关的矿床有铬、铂、金刚石和磷灰石等;与基性岩共生的矿床有钛磁铁矿和硫化镍矿;与中性和酸性火成岩有关的矿床有钨、锡、钼、铜、铅、锌、金、铀与石英等。区域性和深部地质构造控制着成矿区、成矿带、矿田和矿床的位置。在成矿区的划分时,区域性和深部地质构造有很重要的作用。断裂带是岩浆侵入的通道,褶皱与大断裂交叉处往往是控制成矿的远景区。在评价内生矿区时,岩浆和构造控制是主要的;而在评价海相沉积矿床时,地层及构造控制则是主要的。前寒武纪是最古老和规模最大的鞍山式铁矿的成矿时期;震旦纪是宣化式铁矿的成矿时期;上泥盆纪是宁乡式铁矿的成矿期;奥陶纪是灰岩侵蚀面上的中石炭纪底部的山西式铁矿的成矿期;二叠纪是涪陵式铁矿的成矿期。铀矿、锰矿、铜矿、铝土矿等都受地层控制;有些内生矿床受不透水盖层的控制,如汞矿。锑矿、多金属矿。 2.含矿性标志 在确定成矿远景区时,除了要考虑成矿的地质前提外,远景区内还应有含矿性标志存在。凡能直接间接证明被评价地区地下存在着矿产的任何地质、地球化学、地球物理或其他因素, 都可算作含矿性标志。成矿作用的直接标志有:○1天然或人工露头(矿产露头)上的矿产显示;○2有用矿物和元素的原生晕和分散晕区;○3有用矿物和元素的次生机械晕、岩石化学、水化学、气体和生物化学晕、晕区和分散流;○4地球物理异常;○5古探矿遗迹和矿产标志。成矿作用的间接标志包括:○1蚀变的近矿围岩;○2矿化的矿物和伴生元素;○3历 史地理和其他间接资料。 (二)地质、地球物理与地球化学综合预测成矿远景区 矿产在地壳中的分布受各种成矿条件的控制,不同类型矿床,其成矿控制条件不同,研究的重点也不同,如内生矿床着重研究岩浆岩、构造以及围岩岩性条件,沉积矿床应着重研究地层、岩性、岩相和构造条件,风化矿床还应研究风化作用条件,对各类砂矿主要研究地貌条件,对变质矿床要研究变质作用条件。 1.地质、遥感与物探结合查明构造条件

旅游需求预测方法与模型评述

2008年9月 甘肃省经济管理干部学院学报 Sep te mber 2008第21卷第3期 Journal of Gansu Econom ic Manage ment I nstitute Vol 121 No 13 旅游需求预测方法与模型评述 3 殷书炉,杨立勋 (西北师范大学经济管理学院,甘肃兰州 730070) 摘 要:对旅游需求预测研究始于上世纪60年代,绝大多数研究成果出现于80年代以后,然而对此类研究进行整理和述评的论文较少。因此,文章系统论述了各种方法与模型在旅游需求预测中的应用,并对其预测效果做了简略评价,同时指出了将来的研究重点和发展趋势。 关键词:旅游需求;预测模型;发展趋势 中图分类号:F224.9;F59 文献标识码: A 文章编号:100924830(2008)0320042204 一、引言 随着经济全球化和国际交流的不断深化,国际旅游业得到了长足的发展。旅游业对于平衡国际收支,改善贸易结构具有不可替代的作用,同时又是扩大对外开放、促进对外交流的重要手段。因此在过去20年里旅游研究也得到了前所未有的发展,而旅游需求模型与预测更是研究的重点。 本文在综合介绍旅游需求预测中各种模型运用的基础之上,对这些模型的优缺点做出相应的评价,同时分析了今后旅游预测的研究重点和发展趋势。 二、旅游需求预测中模型的应用 (一)计量模型 经济预测方法常用的有两类,一类是解释性预测方法,即找出预测变量的相关影响因素,建立回归模型,进行分析和预测。另一类是时间序列分析方法,它只依赖于预测变量的历史观测数据和其背后的规律,通过相应的数学模型拟合出变化趋势,从而进行预测。 Kulendran et al .(2000)[1] 研究发现误差修正模型EC M (Err or Correcti on Model )优于天真1(Naive 1)和季节性自回归移动平均法(S AR I M A )。L i et al .(2006)[2] 将误差修正模型EC M 和T VP (Ti m e Varying Para meter )两者的优点相结合而提出T VP -EC M ,并验证了比其他单一的分析方法有更好的预 测效果。线性回归L (L inear )和滞后线性模型LL (Lag L inear )在许多旅游预测中都有应用,但预测效 果都不甚理想。 近乎理想需求方法A I D S (A l m ost I deal De mand Syste m )有很好的经济学理论基础,它特别适合于旅 游需求的弹性分析。L i,Song,W itt (2006)[3] 将T VP 分别和EC M -LA I D S 与长期线性近乎理想需求方法LR -LA I D S 组成T VP -EC M -LA I D S,T VP -LR -LA I D S,并且证明这种组合模型的预测能力更好。 联立方程组主要强调的是各单个方程之间的内在联系,在社会管理方面应用较多,比如对G DP 、电 力需求的预测。Turner,W itt (2001)[4] 运用联立方程组探讨了假日游、商务游和探亲游的内在关联,并对旅游需求做了分析与预测。 (二)时间序列模型 由于旅游业存在着明显的季节性,因而季节这个显著特征变量成了重要的考察因素。融合季节性的自回归移动平均法(S AR I M A )也就得到了广泛研 究和运用。Goh ,La w (2002)[5] 在对香港的旅游预测中,选用了多种时间序列模型,分别是天真法Na 2ive 、移动平均法MA 、指数平滑法ES 、自回归移动平 — 24—3 收稿日期:2008-04-01 作者简介:殷书炉(1982-),男,安徽太湖人,西北师范大学经济管理学院研究生,研究方向:数量经济学; 杨立勋(1965-),男,甘肃武山人,西北师范大学教授,研究方向:宏观经济统计分析及国民经济核算。

[Petrel]地质建模我们需要考虑些什么

[Petrel]地质建模我们需要考虑些什么?(二) 如果你对于地球物理感兴趣,你可以继续看二、三、四,否则我建议你等两天直接看五。 速度前奏 由井的分层到地震剖面的时间,我们是通过一种叫做“人工合成地震记录(Synthetics)”的技术来建立井点处的时间与深度的对应关系的。 这张图算是相对比较标准的作对比的剖面。不过你比较经常看到的是下面的两种:

其实这个标着b)的图上的井对应的东西不叫人工合成地震记录,而叫做垂直地震剖面(VSP,Vertical Seismic Profile),就是在井眼上像我们做地震一样做那么一遍(详细机理我们就不说了,你可以搜搜相关的词),这样我们就有机会把这两种不同的地震数据放在一起来比较一下了,因为它们都是地震而且位置也重合,它们的相似度肯定很高,这个过程就是“标定”。所谓“标定”,就是把地震剖面的时间和井上的深度一一对应起来。我这里只想告诉你的是Synthetics其实就是模拟的VSP。这跟我们通过声波曲线来解释孔隙度的过程有些类似,但是这个过程似乎更加成熟了一些。现在有些地方甚至不再怎么测VSP测井,而是直接利用人工合成地震记录来替代真实的井眼处地震记录来进行“标定”。 如果可以继续用开车去东来顺这个例子,VSP就是真的开一辆车,拿一个秒表在标志性建筑前计时,一直到达东来顺为止;Synthetics则相当于你在电脑游戏空间内模拟了一个数字化北京,在其中理论性的开一个车,也到处拿个秒表去卡到达标志性建筑的时间。 而在标志建筑物前计时的过程我们称之为“Checkshot”。Checkshot,就是你跑拉力赛,有一些必须经过的点会给你的车拍照,以避免你抄近路。在地球物理学家那里就是时间-深度对应关系的意思。如果一个井或者一个工区你有了Checkshot就意味着这口井或者这个工区都可以同时在时间域和空间域内被你识别到。换言之,你在垂向上有两种坐标,一种标米,一种标毫秒。 对于我们地质学家来说,Checkshot就是一扇窗户,透过它你将看到一个扭曲世界中的真实——对于地球物理学家来说,非常非常真实。 如果你有了Checkshot,那么其实你就等于说有了一连串的 时间1 深度1 时间2 深度2 时间3 深度3 : :

需求预测模型

浅析卷烟需求预测的基本方法当前,卷烟市场呈现“工、商、零”三维一体的新型格局,市场的卷烟货源投放来自于卷烟需求预测,卷烟需求预测工作的虚实影响到卷烟市场的货源满足率。作为最贴近市场、最了解市场、最熟悉客户的客户经理,我们无疑在卷烟市场需求预测方面占有举足轻重的地位,其预测准确率的高低直接关系到“按客户订单组织货源”的可行性及“卷烟市场营销上水平”的进程。 卷烟需求预测就是在卷烟市场调研和对卷烟销售历史数据分析的基础上,运用科学分析方法,对市场需求及未来变化趋势进行分析研究,从而预测未来市场需求和变化趋势的过程。卷烟需求预测一般分为定性预测法和定量预测法。定性预测法是利用对业务知识熟悉、具有丰富经验和较强的综合分析能力的业务人员或专家学者,根据卷烟销售历史资料和相关资料,对卷烟未来销售趋势做出性质上的判断和预测。 定量预测法则是利用销售历史资料,运用一定的数学分析方法和数学模型,找到数据或影响变量之间的规律性联系,以此对卷烟需求或销售的变化趋势做出定量的分析和预测。 卷烟是一种特殊消费商品,其销量以时间为序列,呈现一定的销售规律,但由于消费者的不确定因素,单靠定性或定量预测方法是不能准确预测其销量的。在实际工作中,往往是定性和定量分析和预测方法结合使用。以定性分析确定卷烟市场需求发展趋势,然后以定量预测方法确定数学模型,从而对卷烟市场需求和销售变化

情况做出准确和精确的判断和预测。下面,我将结合“镇巴辖区卷烟销售情况”,对现用的卷烟需求预测方法之“移动平均法”做以实例说明。一、现有方法介绍: <一)、方法说明: 移动平均预测法是一种重要的时间预测方法,它能反映数据的变化趋势,具有较好的修匀历史数据、消除随机波动影响的作用。对具有长期趋势变动和季节性变动的时间序列数据,经过移动平均调整后,可以消除不规律的变动,从而较好地揭示经济现象的长期发展趋势。<二)、计算公式: n y y y M n t t t t ---+++= K 211 注: 1 t M 为第t 期的移动平均值, t y 代表第t 期的实际销量,n 代表平均预测法的跨 度周期<通常取n=3、n=5) <三)、方法步骤: 见下表,以镇巴2018年5月份需求预测为例: 镇巴2018年5月份需求预测(移动平均法>

SIMS锆石U-Pb定年方法-中国科学院地质与地球物理研究所

SIMS锆石U-Pb定年方法 用于U-Pb年龄测定的样品(号码)用常规的重选和磁选技术分选出锆石。将锆石样品颗粒和锆石标样Plésovice (Sláma et al., 2008) (或TEMORA, Black et al., 2004)和Qinghu (Li et al., 2009)粘贴在环氧树脂靶上,然后抛光使其曝露一半晶面。对锆石进行透射光和反射光显微照相以及阴极发光图象分析,以检查锆石的内部结构、帮助选择适宜的测试点位。样品靶在真空下镀金以备分析。 U、Th、Pb的测定在中国科学院地质与地球物理研究所CAMECA IMS-1280二次离子质谱仪(SIMS)上进行,详细分析方法见Li et al. (2009)。锆石标样与锆石样品以1:3比例交替测定。U-Th-Pb同位素比值用标准锆石Plésovice (337Ma, Sláma et al., 2008(或TEMORA (417Ma, Black et al., 2004))校正获得,U含量采用标准锆石91500 (81 ppm, Wiedenbeck et al., 1995) 校正获得,以长期监测标准样品获得的标准偏差(1SD = 1.5%, Li et al., 2010)和单点测试内部精度共同传递得到样品单点误差,以标准样品Qinghu (159.5 Ma, Li et al., 2009) 作为未知样监测数据的精确度。普通Pb校正采用实测204Pb值。由于测得的普通Pb含量非常低,假定普通Pb主要来源于制样过程中带入的表面Pb污染,以现代地壳的平均Pb同位素组成(Stacey and Kramers, 1975)作为普通Pb组成进行校正。同位素比值及年龄误差均为1σ。数据结果处理采用ISOPLOT软件(文献)。 参考文献 Black, L.P., Kamo, S.L., Allen, C.M., Davis, D.W., Aleinikoff, J.N., Valley, J.W., Mundil, R., Campbel, I.H., Korsch, R.J., Williams, I.S., Foudoulis, Chris., 2004. Improved 206Pb/238U microprobe geochronology by the monitoring of a trace-element-related matrix effect; SHRIMP, ID-TIMS, ELA-ICP-MS and oxygen isotope documentation for a series of zircon standards. Chem. Geol., 205: 115-140. Ji?í Sláma, Jan Ko?ler, Daniel J. Condon, James L. Crowley, Axel Gerdes, John M. Hanchar, Matthew S.A. Horstwood, George A. Morris, Lutz Nasdala, Nicholas Norberg, Urs Schaltegger, Blair Schoene, Michael N. Tubrett , Martin J. Whitehouse, 2008. Ple?ovice z ircon —A new natural reference material for U

三维人体动态计算机模拟及仿真系统

三维人体动态计算机模拟及仿真系统 (一) LifeMOD生物力学数字仿真软件 1. 简介 LifeMOD 生物力学数字仿真软件是在 MSC.ADAMS 基础上,进行二次开发,用以研究人体生物力学特征的数字仿真软件,是当今最先进、最完整的人体仿真软件。LifeMOD 生物力学数字仿真软件可用于建立任何生物系统的生物力学模型。这种仿真技术可使研究人员建立各种各样的人体生物力学模型,模拟和仿真人体的运动,并深入地了解人体动作背后的力学特性以及动作技能控制规律。鉴于LifeMOD 生物力学数字仿真软件的强大功能,它成功地应用于生物力学、工程学、康复医学等多个领域。 2. 厂商 美国BRG(Biomechanics Research Group)公司具有超过20年的与世界顶级研究机构和商业机构的成功合作历史,包括体育器材生产商、整形外科、人体损伤研究机构、高校和研究院所、政府机构、医疗器械生产商以及空间技术研究机构,在生物力学、工程学、康复医学等许多行业中有卓越的名誉。 3. 型号 LifeMOD 2008.0.0 4. 功能 LifeMOD 生物力学数字仿真软件的功能强大、先进而且普遍适用。 LifeMOD 生物力学数字仿真软件可用于建立任何生物系统的生物力学模型。这种仿真技术可使研究人员建立各种各样的人体生物力学模型;这些模型既能够再现现实的人体运动,也能够按照研究者的意愿预测非现实的人体运动;通过人体动作的模拟和仿真,计算出人体在运动过程中的运动学和动力学数据,从而使研究者能够深入地了解人体动作背后的力学特性以及动作技能控制规律。 在体育领域,利用LifeMOD的个性化建模和强大的计算能力,不但可以将运动员的比赛和训练情况进行再现并分析运动学、动力学特征,而且能够根据运动员各自的生理特征来进行不同情况的仿真,进行优化分析,进而达到优化运动员技术的目的,从而指导和帮助运动训练。 5. 软件特性 LifeMOD 生物力学数字仿真软件是创建成熟、可信的人体模型的工具。它具有以下特性: ● 快速生成人体模型。能在不到一分钟的时间里完成人体模型的创建。● 完整的骨骼/皮肤/肌肉模型。具有骨骼、皮肤、肌肉的人体模型与受试 对象是成比例的。 ● 可根据研究需要,建立不同精度的人体模型。(简单的是19环节18关

地质地球物理模型可视化与3D建模国内外研究现状

地质地球物理模型可视化与3D建模国内外研究现状 最早的地质体3D可视化建模软件诞生于西方。其发展的一般历程如下:早在70年代初西方矿业界就将三维造型技术应用于地质、矿业领域。早期的采矿计算机辅助设计阶段是底下三维可视化技术的萌芽和孕育阶段。之后,随着计算机技术的不断更新和三维造型技术的不断进步,三维造型技术也不断吸取先进技术,在地质领域中的应用也不断得到扩展。80年代末图像仿真技术和三维GIS 技术的发展,推动了地下三维可视化技术发展,一大批地下三维软件系统被开发应用;90年代初期,开发了大量基于UNIX且用于工作站环境的软件系统。90年代中期以来,随着微机性能的提高,一些地下真三维建模软件开始一直到Windows操作系统和微机环境。 20世纪80年代以来,三维地学可视化系统应用于地质建模在国外已经变得非常普遍,以美国、加拿大、英国为代表的西方国家相继推出了多种代表性的地学可视化建模软件,如Earth Vision新型地质体建模软件、GeoViz地球物理三维可视化应用软件及3Dseis三维地震分析系统等。 我国科学计算可视化技术的研究始于90年代初期。由于数据可视化所处理的数据量非常庞大,生成图像的算法又比较复杂,过去常常需要使用巨型计算机和高档图形工作站,因而,数据可视化开始都在国家级研究中心、高水平的大学、大公司的研究开发中心进行研究和应用。近年来,随着计算机功能的提高、各种图形显卡以及可视化软件的发展,可视化技术已扩展到科学研究、工程、军事、医学等各个领域。随着本世纪以来矿业的复兴以及GIS热潮在中国兴起,一些GIS软件开发商开始开发通用的三维GIS软件,而一些大型矿业集团也联合一些高等院校或科研机构开始开发专门的地质体三维可视化建模软件。目前我国具有独立自主版权的三维地质模拟软件有北京理正软件设计研究院开发的“地理信息系统——地质专题”。近年来国家自然科学基金委员会大力支持地学可视化研究,先后资助了“复杂地质体的三维建模和图形显示研究”、“油储地球物理理论与三维地质图像成图方法”、“地学时空信息动态建模及可视化研究与应用”等项目。1996年中国科学院地球物理研究所(现为中国科学院地质与地球物理研究所)与胜利石油管理局在国家自然科学基金会重点项目“复杂地质体”中,开始追踪研究GOCAD。长春科技大学在阿波罗公司TITANGIS上开发了GeoTransGIS三维GIS,主要用于建立中国乃至全球岩石圈结构模型的三维信息。石油大学开发的RDMS、南京大学与胜利油田合作开发的SLGRAPH都是用于三维石油勘探数据可视化。中国地质大学开发的三维可视化信息系统GeoView可实现真三维地学信息管理、处理、计算分析与评价决策支持。 但从总体上来说,我们国内的水平与国外先进水平还有差距。现在国内石油公司、地球物理公司等单位普遍使用的地质建模软件大都是从国外引进的并以Land-mark公司和GeoQuest公司的解释系统居多。因此,组织力量开发可视化商业软件,并通过市场竞争,促使其逐步成熟,已成为当务之急。

动态系统建模与仿真

摘要:经过半个多世纪的发展,仿真技术已经成为对人类社会发展进步具有重要影响的一门综合性学科。本文对建模与仿真技术发展趋势作了比较全面的分析。仿真建模方法更加丰富,更加需要仿真建模具有互操作性和可重用性,仿真建模与可信度评估成为仿真建模发展的重要支柱;仿真体系结构逐渐形成标准,仿真系统层次化、网络化已成为现实,仿真网格将是下一个重要发展方向;仿真应用领域更加丰富,向复杂系统领域发展,并将更将贴近人们的生活。 经过半个多世纪的发展,仿真技术已经成为人类社会发展进步具有重要影响的一门综合性学科。仿真技术的领域不在局限于某些尖端学科技术研究领域,而成为一项被众多学科领域广泛采用的通用型技术。半个世纪以来,仿真救赎一方面始终是建模技术、计算技术和其他信息技术最先的应用者,另一方面是对计算技术和网络技术等的发展不断提出新的挑战。 在我国建模与仿真方法是随着应用需求的发展不断的进步,近十年来仿真技术发展是沿着以应用需求牵引建模与仿真系统开发、以建模与仿真系统带动建模与仿真技术突破、以建模与仿真技术促进建模与仿真系统发展、将建模与仿真系统又服务于应用良性循环的道路向前发展。 仿真技术研究人员一方面不断地扩展仿真应用领域,另一方面,其他领域研究的丰富成果与不断促使仿真技术人员从新的角度、新的高度、新的广度认识建模与仿真。在近半个世纪的积累和近十年的快速发展的基础上,建模与仿真技术已经成为以相似原理、模型理论、系统技术、信息技术以及仿真应用领域的有关专业技术为基础,以计算机系统、与应用相关的物理效应设备及仿真器为工具,利用模型对已有的或设想的系统进行研究、分析、实验与运行的一门综合性技术。 仿真建模的发展 仿真是基于建模的活动,模型建立、实现、验证、应用是仿真过程不变的主题。随着时代的发展,仿真模型包含的内容大大扩展,建模方法日益多样,模型交互性和重要性变的越来越重要,模型的校核与验证的成功为仿真中必要步骤。 -----------------------------------系统仿真学报杨明张冰王子才哈尔滨工业大学,哈尔滨150001 基本概念 系统:按照某些规律结合起来,互相作用、互相依存的所有实体的集合或总和。模型:从特定应用角度,表达对象系统特征与特性的形式。仿真:用物理模型或数学模型代替实际系统进行实验和研究。 对象系统:仿真、分析与研究的对象。仿真系统:实施仿真的系统。 仿真分类:

企业竞争模拟中市场需求预测模型解析

52 2011.10 2011年10月经管空间 企业竞争模拟中市场需求预测模型解析 文/涂帅华 王滢 摘 要:本文主要研究企业竞争模拟中市场需求预测模型的决策支持作用,通过Eviews计量经济学软件回归分析并研究可量化的变量对需求的影响,探索建立需求预测模型。分析发现,这些变量对需求的影响呈现一定规律;而且部分变量在一定范围内与需求存在明显的线性关系。 关键词:企业竞争模拟;Eviews;市场需求预测 中图分类号:F270 文献标识码:A 文章编号:1006-4117(2011)10-0052-02 依附于企业竞争模拟软件的企业竞争模拟是由学生组成3—5人的团队,进行虚拟企业经营,从而了解企业运营相关知识的实践课程。市场驾驭能力是决定经营效果的重要因素,如何准确预测市场需求,是每个决策者关注的热点。不少实战经验丰富的决策者利用经验和感觉来确定市场需求量,本文以计量经济学为理论基础结合实战经验预测分析市场需求,更准确地描述市场需求与各变量的内在联系。 一、企业竞争模拟简介 企业竞争模拟(B U S I M U)是由北大光华管理学院王其文等几位老师共同研发,运用计算机技术模拟企业竞争环境,参与者组成虚拟的企业,在模拟的市场环境里进行经营决策的训练。[1]其决策分为五个板块:生产运筹、供应安排、市场营销、投资规划以及财务,共69个决策量。半数以上决策量属于市场营销,说明市场营销的重要性和复杂性,表现为市场驾驭的难度。市场的驾驭主要反映在市场价格的把握和市场需求的预测。笔者下面根据比赛所获以及赛后总结探讨一下关于市场需求预测模型的应用。 二、利用Eviews回归市场需求预测模型 Eviews回归模型的数学原理是利用最小二乘法求得未知参数最小二乘估计向量,再根据拟合优度、置信区间和F检验等检验回归模型的整体显著性水平。若回归模型整体上是显著的,则可应用于预测未来;反之,则利用价值不大。程序如下: 1、获取样本数据 本文所用数据来源于:h t t p://b u s i m u.g s m.p k u. https://www.wendangku.net/doc/eb13678356.html,/网站,2011年全国MBA培养院校企业竞争模拟大赛半决赛1889赛区北京工商大学代表队第1市场A产品。选择这部分样本数据作为研究对象的原因:由于比赛中的市场消息是一个描述性变量,具有很强的模糊性和随机性,笔者无力将其量化。1889赛区第1市场A产品受市场消息产生的影响较小,选择这部分数据作为研究对象,可以一定程度上减少随机干扰项对模型准确度的影响。 2、明确目标变量和影响变量 企业生产供应商品为了满足客户需求并从中获利,根据经济学基本规律,需求决定供给。企业生产运营中通过对需求的预测确定生产供应商品的数量,因此需求才是决定性的目标变量。由此确定目标变量为:需求(Y)。 根据比赛规则说明,需求的影响变量非常多,大致可分为三类:数值变量(商品价格、广告费、促销费、产品等级和市场份额)、可量化的非数字变量(广告的滞后效应、市场扩容和季节变动)、不可量化的描述性变量(市场消息等)。本文主要研究的是数值变量以及可量化的非数值变量——这些与需求变动有明显规律的变量——与需求之间的相关关系。数值变量中的商品价格、广告费、促销费的绝对值和相对值都影响需求。市场扩容和季节变动都以时间为轴线,对需求的影响依附于期数反映。由此确定影响变量为:期数(X1)、商品价格、广告费和促销费的绝对量(X2、X3、X4)和相对量(△X2、△X3、△X4)、滞后广告(X5)、产品等级(X6)、市场份额(X7)。 通过数据观察和实战经验总结部分影响变量的规律如下:(1)市场扩容为每期2单位/企业,季节变动周期性影响市场扩容量,春季和秋季为旺季(设第1期为春季),扩容为3单位/企业;将市场扩容和季节变动对需求的影响合并得:2.5×X1+(1-(-1)X1)/4。(2)广告的滞后效应为短期效应——本期广告按照一定比例对下期需求产生影响,对此后各期影响甚小。(3)市场份额不直接影响需求,而是通过总体需求在竞争者中的重新分配影响对个体竞争者的需求,其分配机制:市场份额未达到平均市场份额的企业部分需求会转移到市场份额大于平均市场份额的企业;总结其公式:某参数×(总体市场需求/市场同类竞争者数量)×(该企业上期X7-平均市场份额)。 3、确定目标变量和影响变量的相关关系 根据决策者的角色不同,可将样本数据分为两部分来确定目标变量和影响变量的相关关系。前8期为第一部分,由比赛组织者模拟,不存在相对量的影响,可用于确定X1、X2、X3、X4、X5和X6的影响系数。后7期为第二部分,由各参赛者模拟,不同决策者的决策能力参差不齐、风格迥异,个体决策结果差异较大,增加相对量的影响;以这部分数据和第一部分分析结果作为基础,可确定△X2、△X3、△X4以及X7的影响系数。 (1)第一部分(1—8期) 首先确定目标变量和影响变量的相关关系为线性还是非线性。根据样本数据中前8期数据,利用E v i e w s分析可得,无相对量影响的需求(Y1)与各影响变量整体表现为明显的线性关系;但是观察各影响变量的P r o b.值大部分都大于0.05,可见其系数并不准确,其原因可能是由于X1来自两个影响因素作用的结果,与Y1并不表现出线性关系。剔除 X1对模型的影响,回归分析结果如图1:

地球物理相关院士风采

地球物理相关院士风采
曾融生院士
固体地球物理学家,中科院院士。1924年出生,福建平潭人。1946 年毕业于厦门大学数理系。从1958年开始利用地震波方法研究地壳 结构,开创了中国地球深部构造探测的研究工作,著有《固体地球物 理学导论》 一书。 在中国首次应用地震面波的相速度来研究地壳构造, 发现1974年5月云南昭通大震的多重性, 从而对大地震的破裂过程有 了新的认识。在地球动力学研究中,提出张性盆地和盆地中强震发生 的统一动力学模式,以及印度一欧亚大陆碰撞过程的新模式。1980 年当选为中国科学院院士(学部委员)。
丁国瑜院士
地质学家,中科院院士。?年出生,河北高阳人。1952年北京大学地 质系毕业。1959年获苏联莫斯科地质勘探学院副博士学位。长期从事新 构造、地震构造和地震危险性预测研究。在建立我国地震监测、分析预 报系统方面作了大量开创性工作。提出了我国地壳现代破裂网络与地震 活动关系的模型, 率先编制了中国活断层滑动速率图和现代板内运动图, 并主编了中国活断层图集。在活动构造、古地震、活断层习性、活断层 分段以及这些方面的研究成果在许多重大工程地震危险性评价中的应用 作出了贡献。 1980年当选为中国科学院院士(学部委员) ,1985年
当选为第三世界科学院院士。 。
马宗晋院士
马宗晋,1955年毕业于北京地质学院普查系,1961年中国科学院地 质研究所研究生毕业。他是地质学家、减灾专家和全球构造的探索者, 节理构造定性分析、 渐进式地震预报模式和全球三大构造系统的创立者。 曾获首届李四光地质科学奖,国家级有突出贡献的中青年科学家。现为 中国地震局地质研究所名誉所长,国家科技部国家计委国家经贸委自然 灾害综合研究组组长,1991年当选为中国科学院学部委员。
陈运泰院士

我对地球物理勘察技术的认识

我对地球物理勘察技术的认识 1 地球物理勘探的实质 地球物理勘探是通过观察和研究各种地球物理场的变化来解决地质问题的一种勘查方法。它是以各种岩石和矿石的密度、磁性、电性、弹性、放射性等物理性质的差异为研究基础用不同的物探方法和物探仪器,探测天然的或人工的地球物理场的变化;通过分析、研究所获得地球物理资料,推断、解释地质构造和矿产分布情况。 2 地球物理勘探工作内容 利用相适应的仪器测量、接收工作区域的各种物理信息,应用有效的处理从中提取出需要的信息,并根据岩(矿)体或构造和围岩的物性差异,结合地质条件进行分析,做出地质解释,推断探测对象在地下赋存的位置、大小范围和产状,以及反映相应物性特征的物理量等,作出相应的解释推断的图件。地球物理勘探是地质调查和地学研究不可缺少的一种手段和方法。 3 地球物理勘探的方法 随着现代科学技术的蓬勃发展,根据其所研究地球物理场的不同,物探方法通常可分为以下几大类:(1)以介质弹性差异为基础,研究波场变化规律的地震勘探和声波探测;(2)以介质电性差异为基础,研究天然或人工电场(或电磁场)的变化规律的电法勘探;(3)以介质密度差异为基础,研究重力场变化规律的重力勘探;(4)以介质磁性差异为基础,研究地磁场变化规律的磁法勘探;(5)以介质中放射性元素种类及含量差异为基础,研究幅射场变化特征的核地球物理勘探;(6)以地下热能分布和介质导热性为基础,研究地温场变化的地热勘探等。 地震勘探是近代发展最快的物探方法之一。它的原理是利用人工激发的地震波在弹性不同的地层内的传播规律来勘探地下的地质情况。在地面某处激发的地震

波在向地下传播时,遇到不同弹性地层就会产生反射波或折射波返回地面,用专门得仪器可以记录这些波,分析所得记录的特点,如波的传播时间、振动形状等,通过专门的计算或一起处理,能较准确的确定这些界面的深度和形态,判断地层的岩性,是勘探含油气构造,甚至是直接找油的主要物探方法,也可以用于勘探煤田,盐岩矿床,个别的层状金属矿床以及解决水文地质、工程地质等问题。 电法勘探是根据岩石和矿石电学性质(如电性、电化学活动性、电磁感应特性和电性差异)来找矿和研究地质构造的一种地球物理勘探方法。它是通过观测人工的、天然的电场或交变的电磁场,分析、解释这些场的特点规律达到找矿勘探的目的。电法勘探分为两大类,直流电法,包括电阻率法、充电法、自然电场法、直流激发极化法等;交流电法,包括交流激发极化法、电磁法、大地电磁场法、无线电波透视法和微波法。 重力勘探是利用组成地壳的各种岩体、矿体间的密度差异所引起的地表重力加速度值得变化而进行地球物理勘探的一种方法。以牛顿万有引力为基础。只要勘探地质体与周围岩体有一定的密度差异,就可以用精密的重力测量仪器找出重力异常,然后结合当地的地质和其他物探资料,对重力异常进行定性解释和定量解释,便可以推断覆盖层以下密度不同的矿体与岩层的埋藏情况,进而找出隐状矿体存在的位置和地质构造情况。 磁法勘探是常用的地球物理勘探方法之一,自然界的岩石和矿石具有不同的磁性,可以 产生各不相同的磁场,它使地球磁场在局部地区发生变化,出现磁异常。利用仪器发现和研究这些磁异常,进而寻找磁性矿体和研究地质构造的方法称为磁法勘探,她包括地面、航空、海洋磁法勘探及井中磁法勘探等。磁法勘探主要用来寻找和勘探有关矿产;进行地质填图;研究与尤其油漆有关的地质构造及大地都造等。我国建国以来大多数铁矿区、多金属矿区及油气田等都进行了大量的磁法勘探。效果显著。

农作物空间格局动态变化模拟模型(CROPS)构建

农作物空间格局动态变化模拟模型(CROPS)构建 夏天1,2, 吴文斌1,2,*, 余强毅1,2, 杨鹏1,2, 周清波1,2, 唐华俊1,2(1.农业部农业信息技术重点实验室,北京100081;2.中国农业科学院农业资源与农业区划研究所,北京100081) 摘要:农作物空间格局指特定区域内农作物种植结构、空间分布等信息,是农业土地系统的核心内容之一,也是农业结构调整的重要依据。随着空间模拟技术的发展,农业土地系统的时空动态表达成为可能,但传统模型方法更多关注土地利用类型的转化,而忽视耕地内部农作物格局时空特征的表达。本研究基于CLUE-S土地利用变化模拟模型,进行了概念模型设计、框架和模块重建、参数本底化和校正,研究并提出一个适用于我国农作物空间格局动态变化模拟模型(CROPS,Crop Pattern Simulator)的可行架构,使其能够实现区域尺度土地利用变化与农作物空间格局变化的双层动态模拟。CROPS模型采用了两层次嵌套模拟的模型结构,第一个层次实现对耕地空间格局动态变化过程和状态的表达,第二层次基于第一层次的模拟输出的耕地空间格局,实现耕地内部的农作物空间格局动态变化的有效模拟。CROPS模型主要包括非空间和空间两个大模块,空间模块又包括空间模块I和空间模块II。CROPS模型在东北三省进行了区域应用,结果表明,模型总体模拟效果较好,能够科学合理的表达耕地空间格局和农作物空间格局的动态变化过程。 关键词:农作物空间格局;动态变化;CROPS模型 0引言 农作物空间格局特指一个区域内农作物种植结构、分布、熟制和种植方式等信息[1],是农业土地系统的核心内容之一。一方面,农作物空间格局能够反映蕴藏于农业土地系统内部的诸多服务功能,如粮食安全、农田碳库、生物质能源生产等;另一方面,其反映了空间范围内人类利用农业生产资源的状况,是农作物结构调整和优化的重要依据[2-4]。因此,开展农作物空间格局变化过程及特征研究具有较高的实用价值和重要的科学意义。 近年来,国内外很多学者针对农作物格局及其变化进行了相关研究[5]。统计调查方法是较早且较为常用的方法之一,即以一定的行政区为基本单元进行农作物面积统计分析[6, 7],但这种方法往往忽略了分析单元内部的空间异质性,而且主观性较强。随着遥感、地理信息系统等空间信息技术的发展,农作物格局的空间显性表达(Spatially-explicit representation)逐步成为可能。如[8]利用MODIS遥感数据提取了区域农作物种植结构;[9]同样利用MODIS 数据,实现了我国南方15省(市、自治区)各类水稻(早稻、晚稻和单季稻)种植面积的快速识别;Gao利用航片和遥感影像(TM/ETM+)分析了中国黑龙江省1958,1980,2000三个时间段水稻空间格局变化情况[10]。Montero利用GIS技术构建了藤类植物生长分布模型[11][12]模拟展示了新疆棉花种植面积时空格局演变特征,并揭示当地棉花种植业发展的主要驱动力;吴文斌利建立了农作物播种面积变化模拟系统,分析研究了2005-2035年间世界主要农作物(水稻、玉米、小麦和大豆)播种面积变化的数量特征和空间格局[13]。自1997年至今,美国农业部国家农业统计中心(USDA-NASS,National Agricultural Statistics Service of the US Department of Agriculture)不惜花费大量人力物力,将多源中高分辨率遥感影像与统计调查数据相结合,制作了每年一期的耕地内部作物分布图(CDL,Cropland data layers),供后续研究使用[14]。 不难发现,遥感技术是提取农作物空间分布信息的有效方法,但其相对成本较高,不利于获取大区域、长时间序列的农作物空间格局及其动态变化特征。而空间模拟技术作为遥感 夏天为博士后吴文斌为副研究员余强毅为助理研究员杨鹏为研究员周清波为研究员唐华俊为研究员 通讯作者:吴文斌Email:wuwenbin@https://www.wendangku.net/doc/eb13678356.html, 基金项目:国家自然科学基金项目(40930101,40971218,41271112),国家重点基础研究发展计划项目(“973”计划)(2010CB951504)

相关文档
相关文档 最新文档