Blog from February, 2009

New in .NET 3.5

Barry Faassen created a nice example using new C# which allows to make things like e.g. Cartesian Product of 2 arrays very easy:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FunctionalProgrammingInCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] a = { 1, 2, 3 };
            int[] b = { 3, 4, 5 };

            var r1 = a.Map(x => x * x );
            var r2 = a.Map(b, (x, y) => x + y);
            var r3 = a.CartesianProduct(b, (x, y) => x * y);

            foreach (var item in r2)
                Console.WriteLine(item);
        }
    }

    public static class Seq
    {
        public static IEnumerable<T> Map<T>(this IEnumerable<T> a, Func<T, T> fun)
        {
            foreach (var x in a)
                yield return fun(x);
        }

        public static IEnumerable<T> Map<T>(this IEnumerable<T> a, IEnumerable<T> b, Func<T, T, T> fun)
        {
            int i = 0;
            foreach (var x in a)
                yield return fun(x, b.ElementAt(i++));
        }

        public static IEnumerable<T> CartesianProduct<T>(this IEnumerable<T> a, IEnumerable<T> b, Func<T, T, T> fun)
        {
            foreach (var x in a)
                foreach (var y in b)
                    yield return fun(x, y);
        }
    }
}
  • Main goal of the meeting is to define who can write 0.5 - 2 pages for the topics listed on Roadmap 2009 Paul, Onno, Edward, Gena, Jan Noort and Bert will select items and will send results to Gena, Friday morning as last.
  • Plan will be written in English.
  • Tasks related to the Plan 2009:
    1. Write short description of every item in Roadmap 2009
    2. Merge everything in one document
    3. Discuss with users, other groups, ZWS
    4. Estimate times, functionality to be implemented in 2009
    5. Schedule/GANTT for milestones
  • Planned external meetings for the nearest months:
    • April 1, HABITAT 2.0
    • April 7, External Pizzacursus, STOWA/DUFLOW
    • April 21, External Pizzacursus, Royal Haskoning
    • April ??, Internal Pizzacursus
  • In the coming 2 releases New features for short-time!
    • Structures, 1st priority is to implement one structure 90%
    • GIS: coordinate systems, labels, symbology
    • Array-based function value store
    • Automatic/manual serialization of functions into NetCDF, model input/output
    • Flow model integration bug fixes
    • Prototype/concept for the scenarios, comparison of model data, scripting/macro. Maybe even PowerPoint containing all design ideas if we will be short in time.
  • TODO: JIRA, cleanup JIRA issues, add versions based on the planned meetings.

... a drawing below is related to the discussion about pre-configured models (like in SOBEK Settings), OpenMI-like exchange, toolbox (smile).

Prototype of the OpenMI plug-in

See below a screenshot showing how OpenMI models can be integrated into the DelftShell in the future.

On the screenshot output variables of the MODFLOW and HEC-RAS models are presented - ground water level and flux into the ground.

Some links by Gena

http://www.opengeospatial.org/standards/as - The OpenGIS® Abstract Specification Topic 6: Schema for coverage geometry and functions

Network Analyst (there are videos in Demo showing how it works) http://www.esri.com/software/arcgis/extensions/networkanalyst/about/features.html

http://edndoc.esri.com/arcobjects/9.2/Java/java/library_reference/Location/Location_overview.htm#LinearRef

http://google-latlong.blogspot.com/2007/06/its-click-drag-situation.html - Google routes http://maps.google.com/help/maps/directions/ - can be interesting for Urban version, streets