zoukankan      html  css  js  c++  java
  • GIS系统里DEM文件和DXF文件读取

    GIS系统里DEM文件和DXF文件读取。

    昨天帮朋友做了个小玩意,一个读usgsDEM文件格式和DXF文件格式。

    由于开始我对GIS的玩意一窍不通,经过他许些专业术语的指点,才弄出来,其实也很简单。Let's start!

    先说简单的,DXF文件,DXF为文本文件,数据的储存方式比较土。

    <属性0>

    <内容0>

    <属性1>

    <内容1>

    比如属性10表示x,属性20表示y,属性30表示z,那么一个向量就是:

    10

    100.123

    20

    200.123

    30

    300.123

    这样,下面是一些比较重要的属性:

    $EXTMAX //下面是描述宽高的最大值

    66 //表示一个数据段的开始,每个数据段的第一个数据都是(0, 0),所以也可以通过检测(0, 0)来判断是否是一段数据的开始

    每个数据段形成的是一个闭合的多边形,可以用来创建windows下的rgn.

    然后是DEM文件格式,同样也是文本的,不过比较麻烦,不方便直接查看

    比较重要的数据如下(我用的是ifstream进行读取):

    首先seekg858的位置,然后读入一个int,内容是整个图的y轴长度, height

    然后再读两个无用的intin >> junk >> junk;

    然后开始循环读height组数据,每组数据为每一行的高度值,并且每组数据的长度也不一样。

    for(int i = 0; i < height; i ++)

     {

      in >> junk >> junk >> width;

      in.seekg(126, ios::cur);

        

      for(int j = 0; j < width; j ++)

      {

       int z;

       in >> z;

       // 这里(i, j, z)就构成了一个顶点

      }

     }

    DEM数据最简单的读取就是这样的,只不过DEM数据里的每一行的位置并不是固定的,所以如果最后结果要用3D方式描述出来的话,还需要读入每一行的起始位置,这个信息在第一个循环的两个junk中的一个。

       

    源文档 <http://blog.csdn.net/tarkey/archive/2007/10/12/1821690.aspx>

       

  • 相关阅读:
    解释DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
    MySQL性能优化
    MySQL中的binlog相关命令和恢复技巧
    保障MySQL安全的14个最佳方法
    MySQL忘记root密码的解决方案
    MySQL利用binlog来恢复数据库
    MySQL命令mysqldump参数大全
    MySQL REPLACE替换输出
    MySQL -A不预读数据库信息(use dbname 更快)
    MySQL 慢查询配置
  • 原文地址:https://www.cnblogs.com/sunliming/p/1976563.html
Copyright © 2011-2022 走看看