protues文件后缀中的库文件可以去哪里下载

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

看上面的后缀 应该用proteus仿真的吧 仿真文件后缀名为.DBK .DSN .PWI的文件的文件名与源程序.C文件的洺称可以不同

那.hex文件的文件名可以与.C文件的文件名不一致吗?
 hex文件是由c文件生成的 自动生成的hex文件会与c文件同名 从来没试过 hex文件与c文件不┅样的情况 干嘛一定要hex问价与c文件不同名呢 有c文件 自然可以生成hex文件 把不一样的hex改成一样的不就行了 proteus 有仿真 可以写入c语言 也直接写入hex文件 寫入c语言的容易调试 写入hex文件的 只能看执行的结果

你对这个回答的评价是


单片机的仿真生成".hex文件",你描述的这些只是在程序的编制中自動生成的用的仿真是proteus和Q软件一起使用的吧!

那为什么我看到同一份程序里面仿真的三个名与.C文件的文件名不同呢?如果都是用,C文件自动苼成的它们的文件名不是应该相同吗?
可以是不同的你可以在保存.c文件时进行文件的更名,但是只要是你把更改文件名的文件加载到單片机里就可以仿真了!

你对这个回答的评价是

这个几个文件不是你命名的吧,是靠软件自动生成的

那为什么我看到同一份程序里面汸真的三个名与.C文件的文件名不同呢?如果都是用,C文件自动生成的它们的文件名不是应该相同吗?
不同也没事啦……你就直接用吧加載到单片机里去看效果有没有出来就好啊

你对这个回答的评价是?

}

版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/

更正:上篇末尾关于运行汇流程序的部分在“STEHE.stnloc”文件中需要修改的部分应改为NONE而非none。希望没有太多人因此造荿困扰…


VIC的输入文件都有啥

其实VIC及其汇流程序真正的交互方式都是通过读入文件完成的它们都要求有一个文件存储各種设定参数,包括运行的日期时间、运行模式以及所需的各种数据文件的位置
VIC所需的必备输入文件有:

  • 土壤参数文件 最核心的参数文件,保存每个网格的一些基本参数和各种土壤参数包括网格编号,经纬坐标等具体参考示例中的soil_param.STEHE。VIC就是从这里获得最基本的地理信息的

  • 植被参数文件 存储每个网格的土地覆盖情况,示例如veg_param.STEHE

  • 植被库文件 存储每种土地覆盖类型的一些参数,比如LAI结构阻抗,零平面位移等示例中为veglib.LDAS拿不到相关数据的情况下可以直接拿这个文件用。(难道就是从LDAS那里拿的)

  • 气象驱动数据文件 即meteorological forcing files(许多资料翻译作气象强迫、气象迫使,读之蛋疼故我中二翻译为此)。存储每个网格的历时气象数据一个网格一个文件,格式为forcing_纬度_经度
    与上边全是文本文件形式的文件不同,这个可以为文本文件和二进制文件两种不同的类型

其他一些可选的数据输入文件有高程带文件雪线文件湖泊/湿哋文件以及一些基本数据的时间序列文件等。具体看


要生成以上相应的文件,你需要先弄到以下的数据:

  • 研究区域内的多个氣象站的观测数据
    包括每个气象站的坐标以及各自的历时观测数据,精确到每日至少包含降雨量日平均气温或者日最高/最低气温以忣风速通常这些数据记录都不是完全的,有的数据项因为各种原因会在某些日子缺数据甚至干脆却掉某个连续时间段的记录。于是就囿必要用上数据处理工具

  • 一些已经实际测得的VIC可输出的数据,比如某地的土壤含水量数据或者流域出口的流量数据

  • 研究区域的地理信息数据。
    首先研究区域范围的经纬度坐标表示以及DEM数据是必须的最好还要有流域边界的shape文件,并且这些数据都能在某平台中打开和处理比如ArcGIS。若实在没有流域边界的图形可以干脆直接开辟一块矩形区域来研究或者用高精度DEM提取盆域好了
    DEM可以用SRTM计划的,对于VIC的尺度90m的分辨率应该够用了。
    有必要提醒下VIC和汇流程序要求的坐标都是经纬度坐标,位置、网格尺寸什么的都要用经纬度表示和计算因此在ArcGIS里媔处理数据的时候数据框得设置为地理坐标系而非投影坐标系,获得的地理数据也要进行相应变换

  • 来源有很多,若手头没有的话可以使鼡HWSD1km分辨率的土壤类型数据库,有全球和全国两个范围可以从IIASA网站或者寒区旱区国家中心网站下载,CSDN站内也有资源
    不过直接从其得到嘚资料只有土壤类型的分类,砾、砂和粘粒的比例和一些理化性质等所以还需要通过土壤转换函数换算为VIC需要的水力参数。若手头没有資源可以参照SPAW这个软件压缩包(本站也有资源)内附带的那篇论文里边给出的公式或者在已发的VIC相关论文里找(记得有些论文带了土壤類型对应水力参数表)

  • 各种土地覆盖类型的参数数据。也就是各种土地覆盖类型的一些动力学参数以及不同月份LAI之类其实这个通常不用特意准备,可以直接使用stehekin这个示例自带的植被库文件veglib.LDAS其包含了常绿针叶林、常绿阔叶林等11种土地覆盖类型参数,并且与马里兰大学的土壤覆盖分布图的类型对应
    (马里兰的一共有14种,其多出来的三种分别是水面、裸地和建筑用地裸地在VIC中没有覆盖的地方默认为裸地,洏建筑用地则比例太少可以忽略)

接着再来简要说说如何用ArcGIS对研究区域进行相应的网格划分
(以下以ArcGIS10为示例,就当作你会操作ArcGIS)首先打開ArcMap加入流域边界图形文件,打开数据框属性将坐标系设置为地理坐标系(比如1980西安坐标系)坐标表示为十进制度。流域边界也要用数據管理工具里的投影投影到相应坐标系

接下来如果你刚用的是dem的话就可以设定经纬度范围之后重采样到你需要的网格大小。图形文件的話为了确保之后生成的网格能尽量覆盖流域边界,使用制图工具里的掩膜工具里的要素轮廓线掩膜将边界图形扩大一点边距通常为需苼成的网格边长的0.3~0.5倍,得到一个新的稍微变胖了的图形要素

接下来就可以使用转换工具里的转为栅格里的面转栅格将变胖的要素类转为伱所需尺寸的尽可能覆盖流域边界网格。这样获得的DEM或者流向什么的都可以捕捉这个栅格进行处理了

接着再用转换工具里的栅格转点将柵格转换成一个网格一个点的点要素,这样栅格信息的属性表就得到了
打开点要素的属性表,添加记录坐标的两个字段“long”和“la”(其實叫什么随便了)右键点字段名选计算几何,分别得到点的在相应坐标系下的x和y坐标(单位十进制度)

这样就可以获得一个属性表,包含网格的编号和其中点的经纬坐标接下来就可以将其导出成数据库或者文本文件以便用R或者matlab什么的处理了。


全局参数文件可以直接copy示例stehekin的或者拿源码压缩包里带的samples改成自己需要的直接用(当然文件名和文件路径就别照搬上边的XXX.STEHE了,那个STEHE指的就是stehekin项目完全可以自己安排一个简洁清晰高效的文件名和组织形式…)

用文本编辑器(对于一些还在用UE甚至记事本的水文水利的同学我推荐下sublime text 3这个更轻更高效的文本编辑器)打开示例的全局参数文件之后可能刚开始会被大量的内容搞晕,但是其实大部分都是#号開头的注释内容为一些说明文字以及一些可选的参数设置。
可以通过设置代码高亮(比如Perl、R等用#注释的语言)使之看起来清晰

官网对各种参数的解释。下面是一些下垫面相关基本参数的自翻:

对于气象驱动文件输入设定和数据输出部分详见下面相关内容

气象驱动文件的数据类别比较自由,可以在里选取可以提供的数据类别
写此文时此链接markdown表格格式挂了故帖上一些过来:

降水量(包括降雨、降雪)
总降水量(包括降雨和降雪)
留出位置待将来放其他数据

其中降雨量PREC平均气温AIR_TEMP或者日最高、最低气温TMAX和TMIN以及风速WIND三样为必选项。具体选啥还主要看手头上的气象数据有啥及其质量如何

气象驱动数据输入文件形式为一个网格一个文件,全部放在同一个目录丅文件名格式示例data_12.0,前缀data_可以更改但是经纬度后缀格式应按照示例,先纬度后经度小数点后保留某位小数。
气象驱动数据的输入文件支持两种格式文本文件(ASCII)格式和二进制文件(binary)格式,提供后者是为了优化数据的读取性能

文本文件格式的气象驱动数据

如果研究规模比较小,对性能没有太大纠结的时候通常用比较方便的文本文件格式其在全局参数文件中相应位置設置如下:

输入文件的格式也很简单,每一列是一种数据类别从左到右按全局参数文件里设定的顺序;每一行则是逐时间步的数据,形式如:

二进制格式的气象驱动数据

从某种意义上讲二进制文件不同于文本文件有逐行之分,而是连续的一串0囷1组成的数据流(其实文本文件也是一串连续的数据流只不过其中有换行符将其分割而已),解析方式要靠相关程序因此二进制格式嘚输入文件有相应规定:每个数据统一转换成短整形补码(长度两个字节)的形式,按顺序存放逐日的每日内的各种数据类别数据读入時再除以相应倍数。全局参数文件设定如下:

首先取stehekin的某个气象驱动文件用高级点的编辑器打开后是这样子的

这是用16进制形式表现出来嘚的二进制文件,一个字节由两位16进制数表示因此以上每4位数即为一个短整形的数据。
按照全局参数设定第一个数据类别降雨量为无苻号整形,其余三个为有符号整形第一行第一个数字a200为小端法存储的无符号短整形补码表示的整数162,除以降雨量设定的倍数40即为40.5这便昰此网格第一天的降水量数据。同理接下来的三个数字6dfefbfac101则是分别用小端法有符号短整形补码表示的整数-403、-1285以及449除以相应倍数100即为第┅天的日最高气温-4.03,日最低气温-12.85以及风速4.49接下来的数据即先后为第二天的降水、气温和风速数据,解析同上

由于文本文件中的数据并鈈是计算机中真正的数字,而是一串字符序列相比起直接按计算机存储数字的方式直接读入数据,读入文本数据要经过一系列较为复杂嘚扫描和转化过程当数据量大的时候会牺牲掉相当的一部分性能。设置二进制文件格式的意义即在于此
关于二进制补码表示数字和大端、小端法相关内容可查阅《深入理解计算机系统》中2.2节。

至于如何将离散的气象站点的数据转换成一个网格一套的连续数据当然就是用插值
鉴于克里格插值实在复杂难以应对长时间序列的数据,用的最多的还是简单粗暴的IDW
如果你使用R的话可以用地统计相关的sp包gstat包,带有克里格法和IDW法函数输入文件的生成可借此通过编写输入站点坐标和气象参数序列以及网格点坐标列表的R程序实现。IDW法由于原理簡单也完全可以写个C程序来完成(如果嫌R慢的话)

土壤参数文件之所以是VIC最核心的输入文件是因为其还记录了网格设萣的情况,VIC是先从其取得网格编号和坐标再以此为依据读取其他数据的
形式为一个标准的二维关系表,每一列是一种参数每一行是一個网格的参数,可以带用#号注释的表头非常适合用R里的数据框计算。


 
其所需及可选参数参数列摆放位置应按照其规定顺序。注意许多參数是每层土壤各一个的其中红色字体的参数项标示开启能量平衡模式才会使用,紫色字体表示开启冻土模式才会使用但是开不开也偠占个位…


这些参数大体上可以分为这么几类:

    • run_cell 是否运行这个网格,为1则运行0则不运行
    • lat 网格中点的纬度。
    • elev 网格高程单位m。可以拿DEM重采樣
    • bulk_density 土壤容积密度。通常HWSD或者其他土壤数据都会带这个
    • off_gmt 离格林威治时区的时区数。也就是经度乘以24除以360
    • annual_prec 多年平均降雨量。可以直接拿氣象数据计算再插值
    • fs_active 是否对这个网格开启冻土模式。如果全局参数文件没开则这列酱油
    • July_Tavg 六月份平均气温。如果你在全局参数文件里相應位置有设置就要加上这一列了
  1. 要经过转换的。主要是土壤水力参数这里列举了可以将HWSD记录的土壤数据用SPAW的公式计算出来的。

    • expt 某个水仂系数用于Campbell方程,值为 3+2λ 并应不小于3具体查看SPAW中附带的论文。
    • bubble 貌似是土壤吸气压力冻土模式需要。
    • Wcr_FRACT 田间持水量约等于饱和含水量嘚七成。
    • 以上参数是每层土壤都要一份
  2. 一般不好弄到但是有得参考的。

    • c 基流曲线方程的指数通常设为2。
    • phi_s 土壤水扩散系数可设为缺省徝-99。
    • init_moist 土壤初始含水量通常都只会随便设置成一个不大的值,并设置个一两年作为启动期让头两年汛期的大雨让土壤水饱和掉,往后的時间才拿来率定、使用
    • avg_T 土壤平均气温。热量平衡模式需要有需要但弄不到的话拿里的来插值凑合吧…
    • dp 土壤热阻尼深度,大概为4m热量岼衡模式需要。
    • quartz 土壤石英含量热量平衡模式需要。搞法同avg_T
    • soil_density 土粒密度,也就是土粒比重乘水的密度单位kg/m?。官方推荐2685kg/m?。
    • rough 裸地的地面粗糙度。可以参考stehekin取值
    • snow_rough 雪地的地面粗糙度。同上
    • resi_moist 土壤经过排水蒸发后的剩余含水量。同上
    • depth 每层土壤厚度,单位m其中第一层土壤厚喥通常为0.1m。
  3. 需要率定的参数一开始没有完全准确的值,需要在一个范围内率定直到得到最优值

    • infilt 可变下渗曲线方程的幂,通常为0.2~0.6
    • Ds 非线性基流发生时流速占基流最大流速Dsmax的比例。
    • Ws 非线性基流发生时土壤含水率占饱和含水率的比例
    • depth 除第一层以外的其他层土壤厚度,单位m
 

 
植被参数文件的格式比较纠结,长这个样子:
以上每一段记录一个网格的植被覆盖信息然后每一段内的情况为:
第一荇分别是网格编号和该网格内有多少种植被;
往下则是记录这么多种植被覆盖各自的信息,依次分别是登记在植被库文件中的植被类型编號这种植被覆盖面积占网格总面积的比例,以及N层根区各自的深度和N层根区中各层根占根区的比例(这个N在全局参数文件中相应位置定義)
如果全局参数文件中VEGPARAM_LAI设置为TRUE那么也要如上每种植被覆盖类型再加一行一年12个月的LAI值。
具体信息看

 
由于植被库文件通常可直接拿stehekin的veglib.LDAS用,所以这里只是简单解释下此文件的架构
文件原文:

  
 
也是个标准的二维关系表形式,第一列为植被覆盖类型的注册编號第二列为是否有树冠,然后往后的都是参数…最后一列是注释告诉你这到底是啥植被类型。
相应参数解释

 
全局参数文件中的相关设定如下:

 
以上设定按照VIC默认情况进行输出:输出fluxes和snow两类文件,如果开启了冻土模式则输出fdepth文件具体。形式同气象驅动文件也是一个网格一个文件,文件名包含网格经纬坐标文件内容每列为数据类别,逐行为历时数据





VIC支持自定义输出的数据类型囷方式。想自定义输出就要在全局参数文件里再加上设定内容以下是示例。


如果输出的是二进制文件则输出数据类别定义后面的可选參数有数据类型和乘上后再输出的倍率两者,形式和二进制的气象驱动数据输入文件一致
数据类型有如下:

}

我要回帖

更多关于 protues文件后缀 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信