Mercurial > dive4elements > gnv-client
diff gnv-artifacts/ChangeLog @ 361:aec85d00d82c
Added code to do 2D interpolations along a digitied track on the map.
Not connected to the transition model, yet.
gnv-artifacts/trunk@435 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 15 Dec 2009 22:25:53 +0000 |
parents | ee760729f6b8 |
children | 1ab23cd66870 |
line wrap: on
line diff
--- a/gnv-artifacts/ChangeLog Tue Dec 15 15:58:58 2009 +0000 +++ b/gnv-artifacts/ChangeLog Tue Dec 15 22:25:53 2009 +0000 @@ -1,3 +1,41 @@ +2009-12-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> + + * src/main/java/de/intevation/gnv/math/LinearToMap.java: + Uses JTS Coordinate as geometry model now. + + * src/main/java/de/intevation/gnv/math/Metrics.java, + src/main/java/de/intevation/gnv/math/Interpolator.java: New. + Moved from inner class of LinearToMap to top level class + to be more reusable. Uses JTS Coordinate as geometry model now. + + * src/main/java/de/intevation/gnv/math/Point2d.java: New. + Extends JTS Coordinate to have an additional (i, j) + to model the topological neighborhood withi the mesh, too. + + * src/main/java/de/intevation/gnv/math/Interpolation2D.java: New. + Has a method interpolate() which takes a path line string in form + of a list of JTS Coordinates, a list of grid points (Point2d + to carry the topology, too), a linear range in diagram coordinate + space, a metric to cope with the projection. It reports + interpolated points to an implementor of the new inner interface + Consumer as a JTS Coordinate. (x, y) of this coordinate is the + postion on the map, the z value is the interpolated attribute. + + To speed up the search for the neighbors the input points are + sorted into a quadtree and are queried first level with a buffer of + size (max(abs(p[i].x - p[i+1].x)), max(abs(p[i].y - p[i+1].y))) + around the point to be interpolated. The second level filter + is performed by an inverse L1-ordering with region coding, so + that only the nearest four neighbors are taken into acount. + Only if all four neighbors are present and no + i- or j-gaps exist the interpolation is performed. TODO: Create + a better extrapolation strategy in these cases were these conditions + are not fulfilled. + + * src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java: + Added a process() method to perform the interpolation. It does + nothing by now. TODO: bring it to life. + 2009-12-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/gnv/math/LinearToMap.java: Map linear