1
0
Fork 0

Weather: better cloud altitude interpolation

- Easier altitude interpolation rule
- Don't interpolate to large altitude offsets
This commit is contained in:
Torsten Dreyer 2010-11-20 11:11:59 +01:00
parent 47786d1a5e
commit 3c5cf067c9
3 changed files with 31 additions and 81 deletions

View file

@ -21,20 +21,41 @@
<to>/environment/clouds/layer[0]/elevation-ft</to>
</params>
<name>MetarController:clouds:altitude_interpolate</name>
<type>noise-spike</type>
<max-rate-of-change>8.333</max-rate-of-change>
<type>exponential</type>
<filter-time>
<condition>
<!-- dont't interpolate to -9999 or if more than 2000ft offset -->
<or>
<less-than>
<property alias="../../../../../params/from"/>
<value>-9000</value>
</less-than>
<less-than>
<property alias="../../../../../params/to"/>
<value>-9000</value>
</less-than>
<greater-than>
<expression>
<abs>
<difference>
<property alias="../../../../../../../../params/from"/>
<property alias="../../../../../../../../params/to"/>
</difference>
</abs>
</expression>
<value>2000</value>
</greater-than>
</or>
</condition>
<value>0</value>
</filter-time>
<filter-time>60</filter-time>
<enable>
<condition>
<property>/environment/metar/valid</property>
<property>/environment/params/metar-updates-environment</property>
<greater-than>
<property alias="../../../../params/from"/>
<value>-9000</value>
</greater-than>
<greater-than>
<property alias="../../../../params/to"/>
<value>-9000</value>
</greater-than>
</condition>
</enable>
<input alias="../params/from"/>

View file

@ -1,44 +0,0 @@
<?xml version="1.0" ?>
<!--
This file is part of FlightGear, the free flight simulator
http://www.flightgear.org/
Copyright (C) 2009 Torsten Dreyer, Torsten (at) t3r _dot_ de
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
-->
<PropertyList>
<params>
<from>environment/metar/clouds/layer[0]/elevation-ft</from>
<to>/environment/clouds/layer[0]/elevation-ft</to>
</params>
<name>MetarController:clouds:altitude_set</name>
<type>gain</type>
<gain>1.0</gain>
<enable>
<condition>
<property>/environment/metar/valid</property>
<property>/environment/params/metar-updates-environment</property>
<or>
<less-than>
<property alias="../../../../../params/from"/>
<value>-9000</value>
</less-than>
<less-than>
<property alias="../../../../../params/to"/>
<value>-9000</value>
</less-than>
</or>
</condition>
</enable>
<input alias="../params/from"/>
<output alias="../params/to"/>
</PropertyList>

View file

@ -282,33 +282,6 @@
</filter>
<!-- Clouds -->
<!-- don't interpolate to/from altitude -9999 -->
<filter include="clouds-altitude-set.xml"/>
<filter include="clouds-altitude-set.xml">
<params>
<from>/environment/metar/clouds/layer[1]/elevation-ft</from>
<to>/environment/clouds/layer[1]/elevation-ft</to>
</params>
</filter>
<filter include="clouds-altitude-set.xml">
<params>
<from>/environment/metar/clouds/layer[2]/elevation-ft</from>
<to>/environment/clouds/layer[2]/elevation-ft</to>
</params>
</filter>
<filter include="clouds-altitude-set.xml">
<params>
<from>/environment/metar/clouds/layer[3]/elevation-ft</from>
<to>/environment/clouds/layer[3]/elevation-ft</to>
</params>
</filter>
<filter include="clouds-altitude-set.xml">
<params>
<from>/environment/metar/clouds/layer[4]/elevation-ft</from>
<to>/environment/clouds/layer[4]/elevation-ft</to>
</params>
</filter>
<filter include="clouds-altitude-interpolate.xml"/>
<filter include="clouds-altitude-interpolate.xml">
<params>