예제 #1
0
        public override double?GetAltitude(HealCoor basin)
        {
            var altitude = Relief.GetAltitude(basin);

            if (altitude == 0)
            {
                altitude = ReliefBed.GetAltitude(basin);
            }
            return(altitude);
        }
예제 #2
0
        public override double?GetAltitude(HealCoor basin)
        {
            var surface = Relief.GetAltitude(basin);

            if (surface > 0)
            {
                // lakes in ice are ignored
                return(1);
            }
            return(0);
        }
예제 #3
0
        public override double?GetAltitude(HealCoor basin)
        {
            var altitude      = Relief.GetAltitude(basin);
            var altitudeShape = ReliefBed.GetAltitude(basin) + Earth2014Manager.Radius2Add;

            var thetaTan   = Math.Tan(basin.Beta.Value); /* may be out of range */
            var undulation = altitudeShape - altitude
                             - Ellipsoid.Radius(Ellipsoid.CalcVarPhi(thetaTan));

            return(undulation);
        }
예제 #4
0
        public override double?GetAltitude(HealCoor basin)
        {
            var surface = Relief.GetAltitude(basin);

            if (surface > 0)
            {
                _landPixelsCount++;
            }

            var middle = HealpixManager.Npix / 2d;

            return(Math.Abs(basin.P - middle) <= middle * _percentageOfLand / 100d ? 1 : 0);
        }