Posted: July 3rd, 2010 | Author: laomi | Filed under: 开发日志 | Tags: arcgis, geoprocessing, rest | No Comments »
arcgis server 9.3.1 rest开发学习(一)中已经描述了rest开发的简单的例子,主要是在地图加载的时候在地图上添加了点数据,在此例中清楚了rest javascript开发的一些对象。在这部分主要接触的是在使用queryTask查询地图中的数据,并以柱状图的形式显示出来,在这里需要接触两个知识,一个是querytask,另外一个是使用dojo来实现柱状图。
也许你要问一下为什么使用的是dojo,而不是其他的JavaScript的包,其实其他的包也完全没有问题,你甚至是可以使用Google Chart 服务来完成这部分工作,我之所以使用dojo的主要原因是arcgis rest javascript sdk用的也是dojo的包。
esri.tasks.QueryTask对象就是对一个ArcGIS Server REST 链接(这里面的链接通常是一个图层,例如http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/3)执行一个查询任务。通过下面的图我可以知道,关于QueryTask的执行是在一个图层上进行的。QueryTask执行的主要步骤:
- 初始化一个map,然后添加一个图层,这个图层主要是作为背景图层显示的
- 初始化一个QueryTask对象,参数是一个utl,这个url制定为一个mapservice的Layer,例如上面所说的
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/3
- 初始化一个query(esri.task.Query)对象,对于query对象中主要做的是对查询条件的设置,返回结果设置等。
- 设置信息显示窗口的大小。
- 如果有Geometry对象返回的话,设置Geometry对象的样式。 Read the rest of this entry »
Posted: June 29th, 2010 | Author: laomi | Filed under: 论文读后感 | Tags: PMML | No Comments »
PMML (Predictive Model Markup Language)是被20多个支持者和组织支持的数据挖掘和统计模型的主流标准,现在已经有一些主流的数据分析和挖掘工具已经支持了PMML,例如: SPSS, Weka等。
PMML is the leading standard for statistical and data mining models and supported by over 20 vendors and organizations. With PMML, it is straightforward to develop a model on one system using one application and deploy the model on another system using another application.
对于模型的描述我们知道,模型就像是一个黑盒子,你给它数据,它给你想得到的数据。例如对于一个分类器来说,一旦你将这个分类器已经训练好了,那么新的一条数据从这个模型的输入之后,模型会返回一个输出,告诉你所输入的这条数据时属于哪一类的。其实PMML其实就是数据统计和挖掘,这么个模型能够被多个软件使用,一旦你在一个软件中训练好一个模型,这个模型将会被支持PMML软件或者是应用复用,这个也是PMML的一个目的。
标题我取的是PMML-Association rule,其实是最近自己在写一个关于运用PMML去表达Association rule的例子,以及如何去扩展这个PMML。对于任何一个模型来说,都有它的输入和输出,在PMML中输入和输出已经表达好了,所以自己在这里只是去了解了一下它,没有进一步的去解读它的schema,在这里侧重点是对Association Rule Model的描述,从目前自己从PMML的官方网站上对的描述摘录如下:
Association rule Model
Read the rest of this entry »
Posted: June 28th, 2010 | Author: laomi | Filed under: 心情日志 | 1 Comment »
7月份一部分人要毕业了,我们实验室的基本上得晚别人半年毕业,所以现在基本上也就是做做毕业设计,幸好这次回来自己的毕业设计没有太大的变化,主要还是面向应急领域的数据挖掘系统的设计与开发。
以前在IBM实习的主要内容还是和空间数据挖掘相关的,所以自己在那边做的主要事情是看一些空间数据分析和挖掘的论文以及对空间数据的处理。前段时间一个加拿大的一个大学博士生导师来我们学校找 博士,首先是给我们讲的是空间数据挖掘的相关工作(主要是他们实验室的工作),然后再对于他们招聘博士的宣讲。说句实话,当时我对于他们的研究方向还是挺感兴趣的,所以自己就提了一些关于他们做的工作的一些疑问。他们那边对于去那边读博士的要求不算很高,个人觉得自己应该能去,而且能和我竞争的人毕竟也不多,后来她通过导师也问我愿不愿意去他们那边读博士。那边开的条件对我来说还是有很大的诱惑力的,我与很多的朋友都商量过了,他们都劝我出去看看,说句实话,如果我在年轻两岁的话,我估计我会坚定不移的出去读博士,自己对于做研究还是比较感兴趣的,更何况专业方向也感兴趣。不过自己考虑自己的实际情况,最后还是拒绝了,因为读博的时间是4年,一想到自己的年龄,已经周边同学的一些情况自己实在是没有勇气接受。
外面的世界对我诱惑力实在是太大了,我无法去抵抗外面世界对我诱惑。所以在剩下的三个月里好好复习相关的专业知识,准备找工作,bless me!
Posted: June 27th, 2010 | Author: laomi | Filed under: 开发日志 | Tags: 空间数据挖掘, gis, opengis | No Comments »
最近在写一个spatial association rule的代码,选择的语言是用c/c++来编写,由于这个算法中需要用到空间关系计算这一块,所以需要选用一个能够计算空间关系的库来完成这一部分工作(既然已经有了现成的工具,没有必要自己再去开发一个了),在这里我们选择的是gdal中的ogr。
The OGR Simple Features Library is a C++ open source library (and commandline tools) providing read (and sometimes write) access to a variety of vector file formats including ESRI Shapefiles, S-57, SDTS, PostGIS, Oracle Spatial, and Mapinfo mid/mif and TAB formats.
OGR is a part of the GDAL library.
通过官方网站上的介绍我们可以知道ogr的主要作用是一个对矢量数据的解析和操作的库,然后我再根据我们的需求(解析shapefile以及求出shapefile中的geometry中的空间关系,例如:距离关系、拓扑关系等),我们知道了它能够很好的满足我们的需求,说到这我当时觉得这已经不是什么很困难的问题了,所以自己就准备开始做了。
自己以前也没有用过c/c++写过什么程序,基本上也就是一些简单的数据结构和算法,发现自己对于如何将这个库引用到工程文件中来也是没有什么办法,自己甚至土鳖的将这些源码直接拷到工程文件中去编译,当时也是报了很多的错误。幸好在这个信息时代有Google(百度对于技术类的文章搜索还是没有google那么的强大,起码从我的经验来看是这样的),自己从网上也搜集了一些资料,这里总结具体的编译步骤如下:
由于我们需要空间关系的运算,所以我们需要将geos下载下来,因为在编译gdal的时候它会需要geos的库:
首先需要设定编辑环境,这里我们用的是vs2008,所以设置如下:
D:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat 拖至控制台用进行运行,这样的话,将系统的c++编辑环境设置为vc的编辑环境
编译geos:
1、GEOS 网站下载最新版本geos-3.1.1.tar.bz2 ,同时svn登录http://svn.osgeo.org/geos/trunk,下载geos-svn 版本,
2、解压缩geos-3.1.1.tar.bz2 ,从svn版本中复制nmake.opt,autogen.bat
3、If you use Microsoft Visual C++ (7.1 or later) compiler, you can build GEOS using NMAKE program and provided makefile.vc files:
autogen.bat
nmake /f makefile.vc MSVC_VER=1400
编译gdal Read the rest of this entry »
Posted: June 21st, 2010 | Author: laomi | Filed under: 开发日志 | Tags: arcgis, 实习, geoprocessing, rest | No Comments »
以前对于arcgis只是给美国那边解决一些简单的小问题,毕竟那边没有什么专门的人来做arcgis开发,最近自己这边的设计也快出来了,开始准备开始做系统开发,从目前的开发框架上来说,自己还主要是学习使用rest的方式来开发arcgis中的功能。之所以选择rest开发主要有两个原因:第一是项目的具体需求需要;第二的原因是arcgis server的rest开发方式实现了我多年梦寐以求的GIS开发模式。其实这arcgis最有魅力的地方还是arcgis server中的geoprocessing的部分,如果你选择了使用这种开发模式的话,我相信你的代码量将会减少到只有原来的三分之一左右,如果是要是需要arcgis中多个功能之间进行组合的话,那这样的方式更适合你。
想要了解arcgis server中的geoprocessing service 的话,首先应该了解是arcgis desktop中的arctoolbox和ModelBuilder部分,因为要使用geoprocessing service需要发布的是arctoolbox,在实际调用的时候只要根据参数和服务地址来调用相应的服务。自己在学习这方面的资料的时候看的资料都是零零散散的,只有在youku上看见了一个arcgis的培训视频之后才慢慢的明白其中的一些意思。
首先介绍一下modelbuilder,打开一个arcmap或者是catalog,然后打开arctoolbox中新建一个arctoolbox,然后你可以之间将相关的arcmap中的一些arctoolbox中的一些功能直接拖拽到你新建的modelbuilder中去,这样发布出去的geoprocessing服务与具体的地图没有关系,这样发布出来的服务能够被任何应用程序调用,不过需要对于数据的输入输出必须得满足您所选择的开发模式。具体的数据支持请参考:input and output data types,大家目前习惯的开发模式为rest开发方式,而且很多的事情是直接在web应用中去调用geoprocessing service的服务。
对于geoprocessing service的服务发布存在两种方法,第一种是直接使用arcgis server manager来发布服务,一般来说如果是仅仅简单的进行发布一个geoprocessing service的话,那直接在新建service中新建一个geopeocessing service;另外一种发布geoprocessing service的方式是使用catalog的方式进行部分。 Geopeocessing service 其实有三种:
- A geoprocessing service
- A geoprocessing service with a source map document
- A geoprocessing service with a result map service
关于三种service的大概可以理解成: Read the rest of this entry »
Recent Comments