第一篇:二次开发实习报告
资源环境与旅游学院
ArcGIS二次开发
实习报告
班级:地信11101 姓名: 罗
丽 学号:201114030110、指导老师:李
巍 日期:2014年11月01日
一、实习目的
本学期通过对ArcGIS软应用以及二次开发的学习,通过使用该软件对月脊数据资料进行分析,综合应用ArcGIS软件的功能模块,按照相应的要求完成此次实验(如:计算每条月脊的长、宽、角;统计每条月脊内的撞击坑个数;统计每条月脊线的最大高差;统计月脊公测高程偏移)。
熟练地掌握Arcgis软件功能模块的各个作用,以及理解月脊相关参数的计算原理,能综合地形成相应的处理能力。特别注意:月脊数据的保存位置以及背景环境的设置(坐标系)
二、实习要求
(1)计算每条月脊的长、宽、角(2)统计每条月脊内的撞击坑个数(3)统计每条月脊线的最大高差(4)统计月脊公测高程偏移
三、实习步骤
步骤一:将提取的月脊转换成多边形。
1.打开Arcgis,点击ArcCatalog,在文件夹下面(不是在Geodatabase下面)新建一个类型为polygon的shapefile,命名无所谓,假设命名为polygon.shp,点击Edit按钮,在弹出的对话框中点击Import按钮,将其坐标系设置与ridge图层一致的其空间参考,即GCS_Moon_2000。此处contain M和contain Z复选框都不用勾选。
2.运行程序,点击
按钮添加geodatabases中的ridge和新建的按钮,polygon.shp, ridge要排在前面(如下图左侧),然后点击将把ridge的线要素全部转成多边形,结果如下图右侧。注意:
(1)如果ridge文件中存在圆形或其它非矩形图形的话,运行时会弹出错误消息“not five nodes”,这时会阻断程序,需要手动点击ok才能运行完”。点击该按钮时需保证polygon.shp内记录为空,否则会重复添加;因此,为保证顺利运行,可将ridge文件中的非矩形图形删除。
(2)这个过程可能运行较为耗时,大约15分钟(如果在Geodatabase下建立shape文件运算要快得多,但是那里建立的shape文件有两个保留性字段,难以修改);在运行过程中不要打开或者编辑ArcGIS中的polygon多边形文件,否则程序可能运行出错。
步骤二:计算月脊的宽度、长度、方位。
1.用ArcGIS新建一个工程,假设命名为proj.mxd,然后改一下地图框架的空间参考,详细过程如下:
(1)首先右击左边树形控件的layers,选择属性,出现Data Frame Properties对话框,如下图左侧所示
(2)选择Coordinate System选项卡,选下面的Projected Coordinate System,然后选择World,然后选equidistant cylindrical(world),然后点右侧的按钮modify,出现的窗口如上图右侧所示。(3)选择Select,出现如下图所示窗口,然后依次点击:Solar System、Earth、Moon 2000.prj,然后就是点击应用、确定,这样就把ArcGIS这个框架的坐标系修改了。
2.修改完框架的坐标系之后,添加步骤一中新建后又经过程序处理的polygon文件,这时由于坐标系发生转换,图形如下所示:.在这个工程中给polygon.shp文件添加5个double型的字段。分别对应宽度、长度、方位、高度、偏移、偏移2。这几个字段必须位于表的4~9列。计算值由其顺序决定。保存该工程。
注意:添加字段时必须处于非编辑状态,而且要将C#程序关掉;建立新字段过程中所点击的按钮如下图所示:
4.运行C#程序,点击
按钮打开proj.mxd。点击,将给polygon.shp的宽度、长度、方位字段赋值。这个过程大约需要5分钟;运行结束后可以看到polygon.shp文件表格中的宽度、长度、方位都已经赋值,如下图。
注意:C#程序运行过程中不要轻易关闭,如果想判断该程序是否已经运行完,可以用鼠标点击标题栏,然后拖动,如果标题栏中显示未反应,则表示仍旧在运行,否则就已经运行完成。这个过程大约2分钟。
步骤三:计算月脊高度和方位
1.用ArGIS新建一个类型为polyline的shape文件,空间参考设置跟polygon.shp一致,contain Z value复选框一定要勾选。假定取名为3dline.shp。给3dline添加一个long型字段命名为RidgeID,位于第4列,与前边其他添加的字段不同,这里除了对列的位置有要求之外,必须要求列名为RidgeID。
2.用ArcGIS在步骤二建立的工程proj.mxd中添加分别添加相应DEM文件和3dline文件。注意,这里一定要对这三个图层顺序进行更改,自上而下分别为pologon、DEM、3dline,如下图所示;然后保存该工程。
3.重新运行C#程序,在出现的程序中再次打开上面保存的ArcGIS工程,如下图所示,然后点击,将对每个多边形生成带高程的5条采样线,其中两个短边作为最外侧的两条采样线。点击该按钮时需注意不要多次点击重复添加。这个过程比较耗时,如果DEM只有一幅,那么需要运行4分钟左右;如果DEM较多的话将会非常费时。
这个功能的原理是逐个对polygon.shp内的多边形进行判断,如果多边形的四至位于地形数据的范围内,则对多边形边长较长的一段进行四等分,然后将3条等分线以地形数据的分辨率为步长对高程进行样,采样点的数据存在每条线的矢量数据中。如此,则生成的3d线数量跟高程数据的大小和范围有关。RidgeID列用于储存每条3d线对应的多边形编号。局部放大图如下所示:
步骤四:计算月脊高度
1.完成步骤三之后,需要对DEM进行处理,目的是出去DEM中的撞击坑所占有的DEM。首先,用ArcGIS建立一个类型为polygon的shape文件,空间参考设置与polygon.shp一致,不要框选contain z 和contain M。假定命名为LeftRightRegion,给LeftRightRegion添加一个long型字段命名为RidgeID,位于第4列,这里对列的位置与字段名都严格要求。
2.在proj.mxd中添加LeftRightRegion图层,放在3dline之后;接着添加CraterInRidge文件,放到最后,如下排列:
3.将proj.mxd保存,然后打开c#程序,将该工程打开,然后点击 清空撞击坑地形 按钮,如下:
在ArcGIS中可验证结果,如下图所示:
这里将撞击坑的直径为边长的正方形区域都设为空值。4.接着点击
按钮,将会计算月脊高程,结果写到前面建立的polygon.shp文件中的height栏。5.计算原理:
首先将月脊所在区域的撞击坑中的DEM数值去掉,然后判断其它区域的最大值与最小值之差。
步骤五:计算月脊偏移量 1.完成步骤四之后,接着点击月脊的山脊线,如下:
按钮,可以看到提取出了
接着点击2.计算原理:
按钮,就得到了月脊的偏移量。
每个多边形共有5条横剖面,取出每个剖面上的最高点,将其连线作为月脊的山脊线,然后计算两侧去除撞击坑所在区域的高差,即为偏移量。
步骤六:统计月脊内的撞击坑
再给polygon.shp添加两个字段,在’offset2’字段之后,其中新添加的第一个字段用double型,暂时用不上。第二个字段设为short型用于存放撞击坑数量。
四、实习总结
本次实习通过运用arcgis软件计算月脊及其相关数据,使我们在原有基础上进一步深入的了解和熟悉了arcgis的操作。在实习过程中,我们针对各种遇到的问题请教老师,使我们的学习更有主动性,也提高了我们今后打算从事这方面的同学的学习兴趣,为我们走上工作岗位打下了基础。在学习的全过程中,同学们培养了团结互助的精神,形成了良好的学习氛围。学习理论推动实习作业,实习作业又加深理论学习。真诚感谢老师给予的帮助和支持!
第二篇:监控及二次开发实习实习报告
实验一监控及二次开发实习
【实验目的】内容宋体,小四
【实验要求】
【实验原理】
【实验内容】
【本实验遇到问题及解决方案】
【对本实验的改进建议和疑难问题】
第三篇:网站二次开发协议范文
网站二次开发合同
甲方:
乙方:
甲方在此委托乙方进行
网站的二次开发。为明确双方责任,经友好协商,双方达成以下协议:
第一条:项目的内容、价款、开发进度、交付方式。
第二条:甲方的权利和义务
1.提供专人与乙方联络。
2.提供所有需要放到网上的资料交给乙方,并保证资料的合法性。
3.乙方在完成合同规定的义务后,甲方按照附录一的要求,及时支付费用。
4.甲方将在著作权法的范围内使用本合同标的及相关作品、程序、文件源码,不得将其复制、传播、出售或许可给其它第三方。
5.甲方对本合同标的中的网页、图像享有排版的版权。
6.版权所有归甲方(包括原文件、程序、文字、动画文件、有声文件、及相关作品)第三条:乙方的权利和义务
1.提供专人与甲方联络。
2.按附录一的要求,使用甲方资料,进行网站的二次开发。
3.在附录一要求的期限内,完成网站的二次开发,并通知甲方进行验收。
4.在验收期内甲方要求下,对不合格地方进行修改。
5.乙方未经甲方同意不得向第三方拷贝或泄露网站程序。6.乙方负责维护甲方网站运营期间数据的安全。
7.在附录一要求进行网站更新的情况下,在接到甲方要求网站更新的传真2日内,按照要求对网站进行更新;
8.在附录一要求进行培训的情况下,对甲方1-3名技术人员进行培训。第四条:验收
1.验收标准有以下几条:
a.甲方可以通过任何上网的计算机访问这个网站。
b.主页无文字拼写及图片(以甲方提供的材料为准)错误。
c.网络程序正常运行。
2.验收期为5天时间。
第五条 违约责任
1.任何一方有证据表明对方已经、正在或将要违约,可以中止履行本合同,但应及时通知对方。若对方继续不履行、履行不当或者违反本合同,该方可以解除本合同并要求对方赔偿损失。
2.因不可抗力而无法承担责任的一方,应在不可抗力发生的3 天内,及时通知另一方。
3.一方因不可抗力确实无法承担责任,而造成损失的,不付赔偿责任。本合同所称不可抗力是指不能预见、不能克服并不能避免且对一方当事人造成重大影响的客观事件,包括但不限于自然灾害如洪水、地震、火灾和风暴等以及社会事件如战争、**、政府行为等。
第六条 保密条款
双方应严格保守在合作过程中所了解的对方的商业及技术机密,否则应对因此造成的损失承担赔偿。
第七条 以上条款如有未尽事疑,经甲、乙双方协商后加以补充:
补充内容: 乙方需提供使用文档,并根据使用文档对甲方技术人员提供相关培训等支持。并在交付后有免费代码维护义务,并在双方合作共赢的基础上提供更多技术支持(比如有偿的功能开发等项目)。
第八条 其它
1.如果本合同任何条款根据现行法律被确定为无效或无法实施,本合同的其他所有条款将继续有效。此种情况下,双方将以有效的约定替换该约定,且该有效约定应尽可能接近原约定和本合同相应的精神和宗旨。
2.附录一规定的有效期满,乙方未完成附录一任务,超出期限每天扣两百,超出期限后放弃该任务,按网站的费用双倍赔偿。
3.如乙方在期限内放弃该任务,按网站的费用双倍赔偿。3.本合同经双方授权代表签字并盖章,自签订日起生效。
4.本合同一式两份,双方当事人各执一份,具有同等法律效力。
甲方(盖章):
乙方(盖章)代表:
代表:
第四篇:Nutch二次开发总结
1.1 信息源选择及规范制定
Nutch通过制定相应的URL规则来达到对限定的URL进行爬取,即过滤信息。默认情况下可以在相关的配置文件中进行配置,它用正则表达式来规范URL。当然,还可以自己编写相应的插件等来实现所制定的URL规范。
1.2 信息预处理
这里的信息预处理是指将Nutch爬虫所下载下来的内容转变为Nutch索引器所能调用的文本。信息预处理过程主要涉及到如下内容:
(1)格式识别并抽取文本。一般情况下,Nutch爬虫下载下来的文档是HTML,但是网络上还存在诸多类型的其他文本:txt、doc、pdf、xls、rtf等等,甚至还有多媒体的文档格式。在进行索引之前,必然从这些下载下来的文件中抽取出文本信息,针对不同的格式文档抽取方式也不同。Nutch默认对HTML、TXT能直接处理,而其他的有些已经实现但并没有加载。目前有很多开源软件可以抽取文本信息,如word文档的poi、pdf文档的pdf-reader等等。在二次开发时,需要对相应的文档格式进行编写抽取文本工具。
(2)信息过滤。这里的信息过滤是指从抽取的文本中滤去那些不希望使其存在的文本内容,这个过程也不一定是独立的,可能会与上一个过程存在相交之处。举个实例,比如针对某一个网站的某一部分网页中的部分区域不希望被索引,那么可以编写一个相关的插件来实现对这个网站的这类网页进行过滤,去除这一区域内的内容。
(3)编码格式的转换。网络上的信息编码格式五花八门,并不是特别规范。一般情况下,Nutch处理后都能实现编码的统一,但是有些信息却不能很好地被默认程序转换,这时候就应当对Nutch进行扩展,以实现编码的转换。
1.3 索引本土化构建
以过信息预处理后的信息可以直接为Nutch索引。在索引过程中,需要考虑的因素也有很多。一是中文类语言的分词问题。这一点在前面实验中已有详细的分析并做了一些总结。二是信息的进一步处理,这一过程是在寻找最能表达原文语义的语词集合。另外还有一些其他相关技术如词干提取、停止词、本体等等。这个过程是相当重要的一个过程,直接决定了查询服务的效果。
1.4 排序规则制定
排序规则的制定并不仅仅影响到查询结果,可以说它贯穿在了整个搜索引擎的工作过程中。因为能影响排序规则的因素有很多,比如说与用户需求的相关性、系统业务需求等,具体的有如语词在文献中的词频、在整个文献空间的词频、语词位置等,甚至是信息时间都会影响到排序。因此在二次开发时,需要根据需求,针对性地制定排序规则,并把它反映在系统中。
1.5 查询系统及用户界面
Nutch的查询系统是发布在Tomcat下的,它提供了一种类似于google的查询界面,并且支持多语言。在实际的二次开发中,并不一定支持多种语言,可针对某一种语言进行改写。另外还可以对查询过程进行二次改发,改变它的查询方式、添加分页、增加summery等。对于用户接口界面,则根据实际情况改写即可。
第五篇:RobotFramework二次开发小结
RobotFramework二次开发小结
本文主要针对用例之间的调度,和定时运行用例这两个方向进行了介绍,其中用例之间的调度在RobotFramework平台上直接可以实现,对定时运行用例,我们进行了Robot平台的二次开发。
【用例之间调度】:
1、前一个用例的执行结果是后一个用例的执行条件,在python编译环境下定义两个函数。
图1 python编写资源库文件
在RobotFramework里添加该资源库文件,定义一个全局变量${turn},新建两个用例test1和test3,Robot平台提供了关键词Run Keyword if,可以实现两个用例之间的调度关系,如果函数(在Robot称为关键字)check返回的是True则执行函数Add,否则不会执行函数Add。
图2 RobotFramework设计用例1
2、前一个用例的执行结果是后一个测试用例的输入值,定义一个全局变量${sum},将函数Add的执行结果传给函数Fun。
图3 RobotFramework设计用例2
【RobotFramework二次开发】 关于定时运行用例,对Robot平台进行了二次开发,在Robot平台的菜单栏里添加一个Tasks菜单项,点击下拉菜单Schedule弹出设置界面。
图 4 RobotFramework二次开发界面
1、该Task Schedule Dialog 可以设计定时运行用例,有两种触发方式,Single和Cycle(CI Trigger方式目前没有实现),其中Cycle可以设置间隔时间,单位为hour、day、week;
2、打开Task Schedule Dialog时,自动将Robot平台设计的用例树放在界面的绿色区域,可以选择单个用例或多个用例,输入Task Name(也就是Robot平台的tag),选定触发方式(Single或Cycle),点击Add按钮添加任务;
3、选择添加的任何一个任务,可以通过Modify按钮修改Task Name,或通过Delete按钮删除该任务;
4、鼠标点击一个任务时,在绿色区域的用例树中,被设置的用例会自动打勾显示。
图5 RobotFramework平台二次开发功能图
5、点击Start按钮将按设置时间依次运行各用例,如图6所示,如果用例是保存在文件夹D:python_testSofttest,,任务的运行报告自动保存在当前目录的OutputDirN下,如果是Cycle方式会再建一层文件夹(文件夹名为任务运行时间)。
图 6 用例执行报告保存文件夹
关注点:Task Schedule Dialog里的Task Name就是Robot平台的tag,执行的过程先判断设定时间,如果满足条件,将Output Directory目录下的含有该tag的所有用例都运行一次。用例执行顺序和最初在Robot平台设计的用例顺序一致。
6、Robot平台的二次开发使用方法:将FrameTask.py,mainframe.py,TaskSchedule.py,TestTree.py放在C:Python26Libsite-packagesrobotideui,覆盖所有文件,再打开Robot就可以看到菜单项。