Talky的个人博客分享 http://blog.sciencenet.cn/u/Talky 应当重视建设生态文明!

博文

环境信息经验一:等值线程序 精选

已有 7162 次阅读 2012-5-19 16:04 |个人分类:环境信息|系统分类:科研笔记| 程序, 等值线, 环境信息

环境信息经验一:等值线程序

 

八十年代末期从事环境影响评价工作时,一个困难是没有绘图软件(程序),地图和等浓度线画起来难度大。1989年自行开发完成了等值线程序,得到了很多应用。为了提高计算速度,程序是FORTRAN写的,计算应该连接的各点坐标,记录在数据文件中。然后通过BASIC程序,调用这个数据文件,结合地图,调用绘图仪输出。之后又改写为C++语言模块,放在环境信息系统中应用。原因是地理信息系统(GIS)非常商业化,而环境信息系统常常主要应用GIS中的地图功能,“嵌入式”是经常选择。这时GIS往往不含等值线作图部分,这时自己开发的等值线模块就有用了。

 

这里提供思路和源程序,供有兴趣的青年人应用。

 

近几年没有再仔细调研过等值线程序的国内外文献,以前做过,感觉我的方法是比较好的。想过发文章,一直懒,最终也没有写好,没有发表过。曾经想称为:“全局定位型矩形网格等值线算法"

 

思想:如图1,如果已经有计算好的网格浓度,用颜色深浅表示。

图中有4种不同深浅的颜色(应用计算机很容易分辨的)。如果等值线就按这4个值,每个值有几条线,在哪里,已经一目了然了。因此可以利用这一步,可能联结的每条等值线上的点坐标,对应的网格点“点对”。然后按这些记录下来的“点对”数据,一条一条地排序判断,连接次序,计算真正需要的点坐标。

 

这个算法的优点是,不可能发生连接误差:交叉或遗漏。缺点是要先计算网格点浓度,精度受到网格疏密的限制,因此也受到计算语言软件数组大小的限制。经验是,81´81的网格在一般情况下足够了。图中是23´23。计算结果如图二:

 

附源程序:FORTRAN,  BASIC,  C++ 供参考,是1994年的,去掉了一些不必要的字符。

DZX-FOR.FOR 

DZX-BAS.BAS 

DZX-CPP.CPP

 



https://blog.sciencenet.cn/blog-609047-572758.html

上一篇:关于气候变化和水资源保护
下一篇:环境信息经验之二:地图程序
收藏 IP: 116.231.5.*| 热度|

12 赵建民 喻海良 王洪涛 陈仁全 夏新宇 马剑 刘鹰翔 郭晓波 苏德辰 陈小斌 crossludo 宋敦江

该博文允许注册用户评论 请点击登录 评论 (25 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 13:37

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部