[magics] 04/31: 2.18.5 upstream
Alastair McKinstry
mckinstry at moszumanska.debian.org
Fri Jun 12 11:09:46 UTC 2015
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to branch master
in repository magics.
commit 5fd0427f752b7111117289aba73977ed5ff0de7e
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Wed May 22 06:12:41 2013 +0100
2.18.5 upstream
---
COPYING | 2 +-
ChangeLog | 630 +++++++++++++++++++++
LICENSE | 2 +-
Makefile.in | 2 +
README | 37 +-
apps/MagMLInterpretor/Makefile.in | 2 +
apps/Makefile.in | 2 +
apps/metgram/10_days_epsgram.xml | 86 ++-
apps/metgram/10_days_wave_epsgram.xml | 89 +--
apps/metgram/15_days_epsgram.xml | 109 ++--
apps/metgram/Makefile.in | 2 +
configure | 95 +++-
configure.ac | 7 +-
debian/README-testfailures.txt | 64 ---
debian/changelog | 247 --------
debian/compat | 1 -
debian/control | 87 ---
debian/copyright | 48 --
debian/libmagics++-data.install | 1 -
debian/libmagics++-dev.install | 10 -
debian/libmagplus3.install | 1 -
debian/magics++.install | 3 -
debian/patches/cve-2010-3393.patch | 31 -
debian/patches/dynamic_link.patch | 21 -
debian/patches/enable_static.patch | 18 -
debian/patches/gcc-4.7.patch | 144 -----
debian/patches/magics-config.patch | 131 -----
debian/patches/series | 6 -
debian/patches/terralib.patch | 141 -----
debian/rules | 88 ---
debian/source/format | 1 -
debian/source/options | 1 -
python/Magics/Magics_interface.cc | 3 +
python/Magics/Makefile.in | 2 +
python/Magics/macro.py | 98 ++--
python/Magics/setup.py.in | 1 +
rpms/Makefile.in | 2 +
src/MagicsSingle.cc | 15 +-
src/Makefile.in | 2 +
src/MvObs/Makefile.in | 2 +
src/basic/BasicGraphicsObject.cc | 9 +-
src/basic/BasicGraphicsObject.h | 3 +
src/basic/FortranMagics.cc | 36 ++
src/basic/FortranMagics.h | 1 +
src/basic/Layer.cc | 9 +-
src/basic/Layer.h | 2 +
src/basic/LegendVisitor.cc | 36 +-
src/basic/LegendVisitor.h | 3 +-
src/basic/LegendVisitorAttributes.h | 2 +-
src/basic/MagnifierVisitorAttributes.h | 2 +-
src/basic/Makefile.in | 2 +
src/basic/MultiVisdef.cc | 14 +
src/basic/MultiVisdef.h | 1 +
src/basic/TagHandler.cc | 15 +
src/basic/TagHandler.h | 1 +
src/basic/WrepRootNodeAttributes.h | 2 +-
src/basic/XmlBasicNodeAttributes.h | 2 +-
src/basic/XmlRootNodeAttributes.h | 2 +-
src/basic/XmlSceneNodeAttributes.h | 2 +-
src/basic/XmlViewNodeAttributes.h | 2 +-
src/common/CartesianTransformation.h | 1 +
src/common/ColourTableDefinitionCompute.cc | 41 +-
src/common/Coordinate.h | 5 +-
src/common/FortranRootSceneNodeAttributes.h | 2 +-
src/common/FortranSceneNodeAttributes.h | 2 +-
src/common/FortranViewNodeAttributes.h | 2 +-
src/common/GeoRectangularProjectionAttributes.h | 2 +-
src/common/Layout.cc | 14 +-
src/common/Layout.h | 5 +-
src/common/LogoPlottingAttributes.h | 2 +-
src/common/MagicsCalls.cc | 20 +-
src/common/MagicsFormat.cc | 2 +-
src/common/Makefile.in | 2 +
src/common/MatrixHandler.h | 16 +-
src/common/OutputHandlerAttributes.h | 2 +-
src/common/PageIDAttributes.h | 2 +-
src/common/UserLogoPlottingAttributes.h | 2 +-
src/common/magics_api.h | 1 +
src/decoders/BinningObjectAttributes.h | 2 +-
src/decoders/DateGribLoopStepAttributes.h | 2 +-
src/decoders/EpsXmlInput.cc | 10 +-
src/decoders/EpsgramDecoder.cc | 16 +-
src/decoders/GeoPointsDecoderAttributes.h | 2 +-
src/decoders/GribDecoderAttributes.h | 2 +-
src/decoders/GribLoopAttributes.h | 2 +-
src/decoders/GribRegularInterpretor.cc | 15 +-
src/decoders/ImportActionAttributes.h | 2 +-
src/decoders/InputData.cc | 33 +-
src/decoders/InputMatrixInterpretor.cc | 15 +-
src/decoders/InputMatrixInterpretor.h | 2 +
src/decoders/Makefile.in | 2 +
src/decoders/Netcdf.cc | 25 +-
src/decoders/Netcdf.h | 11 +-
src/decoders/NetcdfDecoderAttributes.h | 2 +-
src/decoders/NetcdfGeoMatrixInterpretor.cc | 8 +-
.../NetcdfGeoMatrixInterpretorAttributes.h | 2 +-
.../NetcdfGeoPolarMatrixInterpretorAttributes.h | 2 +-
.../NetcdfGeoVectorInterpretorAttributes.h | 2 +-
.../NetcdfGeopointsInterpretorAttributes.h | 2 +-
src/decoders/NetcdfInterpretorAttributes.h | 2 +-
src/decoders/NetcdfMatrixInterpretor.cc | 61 +-
src/decoders/NetcdfMatrixInterpretor.h | 7 +-
src/decoders/NetcdfMatrixInterpretorAttributes.h | 2 +-
src/decoders/NetcdfVectorInterpretorAttributes.h | 2 +-
src/decoders/ObsDecoderAttributes.h | 2 +-
src/decoders/ObsStatDecoderAttributes.h | 2 +-
src/drivers/BaseDriverSymbols.h | 6 +-
src/drivers/Makefile.in | 2 +
src/drivers/PostScriptDriver.cc | 9 +-
src/drivers/QtDriver.cc | 215 +++----
src/libMagWrapper/Makefile.in | 2 +
src/libTable/Makefile.in | 2 +
src/magics_config.h | 14 +-
src/magics_ecmwf_log.h | 2 +-
src/oda/Makefile.in | 2 +
src/oda/OdaDecoder.cc | 4 +-
src/terralib/Makefile.in | 2 +
src/visualisers/Akima474MethodAttributes.h | 2 +-
src/visualisers/Akima760.cc | 18 +-
src/visualisers/Akima760MethodAttributes.h | 2 +-
src/visualisers/AxisAttributes.cc | 2 +-
src/visualisers/AxisAttributes.h | 2 +-
src/visualisers/AxisMethod.cc | 55 +-
src/visualisers/AxisMethodAttributes.cc | 2 +-
src/visualisers/Bar.cc | 22 +-
src/visualisers/BothValuePlotMethodAttributes.cc | 2 +-
src/visualisers/BoundariesAttributes.h | 2 +-
src/visualisers/BoxPlotBoxAttributes.cc | 2 +-
src/visualisers/BoxPlotBoxBorderAttributes.cc | 2 +-
src/visualisers/BoxPlotMedianAttributes.cc | 2 +-
src/visualisers/BoxPlotVisualiserAttributes.cc | 2 +-
src/visualisers/BoxPlotWhiskerBorderAttributes.cc | 2 +-
src/visualisers/BoxPlotWhiskerBoxAttributes.cc | 2 +-
src/visualisers/BoxPlotWhiskerLineAttributes.cc | 2 +-
.../CalculateColourTechniqueAttributes.h | 2 +-
src/visualisers/CdfGraphAttributes.cc | 2 +-
src/visualisers/CellShadingAttributes.h | 2 +-
src/visualisers/CoastPlottingAttributes.h | 2 +-
src/visualisers/CoastlinesAttributes.h | 2 +-
src/visualisers/ColourTechnique.cc | 15 +-
src/visualisers/ContinuousLegendMethodAttributes.h | 2 +-
src/visualisers/ContourAttributes.cc | 2 +-
src/visualisers/ContourAttributes.h | 2 +-
src/visualisers/CountSelectionTypeAttributes.h | 2 +-
src/visualisers/DateAxis.cc | 37 +-
src/visualisers/DotPolyShadingMethodAttributes.h | 2 +-
src/visualisers/EfiGraphAttributes.cc | 2 +-
src/visualisers/EpsCloudAttributes.cc | 2 +-
src/visualisers/EpsGraphAttributes.cc | 2 +-
src/visualisers/EpsPlumeAttributes.cc | 2 +-
src/visualisers/EpsShadeAttributes.cc | 2 +-
src/visualisers/EpsWindAttributes.cc | 2 +-
src/visualisers/FixedTableModeAttributes.h | 2 +-
src/visualisers/GraphShade.cc | 2 -
src/visualisers/GraphShadeStyle.cc | 39 +-
src/visualisers/GridPlottingAttributes.h | 2 +-
src/visualisers/GridShadingAttributes.h | 2 +-
src/visualisers/HatchPolyShadingMethodAttributes.h | 2 +-
src/visualisers/HiLoAttributes.cc | 2 +-
src/visualisers/HiLoAttributes.h | 2 +-
src/visualisers/HiLoMarkerAttributes.h | 2 +-
src/visualisers/HiLoNumberAttributes.h | 2 +-
src/visualisers/HiLoTechniqueAttributes.h | 2 +-
src/visualisers/HiLoTextAttributes.h | 2 +-
src/visualisers/HistogramAttributes.cc | 2 +-
src/visualisers/HistogramLegendMethodAttributes.h | 2 +-
src/visualisers/ImagePlottingAttributes.h | 2 +-
src/visualisers/ImportPlotAttributes.h | 2 +-
src/visualisers/IntervalSelectionType.cc | 21 +-
src/visualisers/IntervalSelectionTypeAttributes.h | 2 +-
src/visualisers/IsoHighlightAttributes.h | 2 +-
src/visualisers/IsoLabelAttributes.h | 2 +-
src/visualisers/IsoPlot.cc | 18 +-
src/visualisers/IsoPlotAttributes.cc | 2 +-
src/visualisers/IsoPlotAttributes.h | 2 +-
src/visualisers/IsoShading.h | 10 +-
src/visualisers/IsoShadingAttributes.cc | 2 +-
src/visualisers/IsoShadingAttributes.h | 2 +-
src/visualisers/LabelPlottingAttributes.h | 2 +-
src/visualisers/LegendBoxAttributes.h | 2 +-
src/visualisers/LevelListSelectionTypeAttributes.h | 2 +-
src/visualisers/LevelSelectionAttributes.h | 2 +-
src/visualisers/ListColourTechniqueAttributes.h | 2 +-
src/visualisers/LookupTableModeAttributes.h | 2 +-
src/visualisers/Makefile.in | 2 +
src/visualisers/MarkerShadingTechniqueAttributes.h | 2 +-
src/visualisers/MetgramCurveAttributes.cc | 2 +-
src/visualisers/MetgramFlagsAttributes.cc | 2 +-
src/visualisers/MetgramGraphAttributes.cc | 2 +-
src/visualisers/NoGridPlottingAttributes.h | 2 +-
src/visualisers/ObsItemFamily.cc | 6 +-
src/visualisers/ObsPlotting.cc | 7 +-
src/visualisers/ObsPlottingAttributes.h | 2 +-
src/visualisers/PolyShadingMethod.cc | 38 +-
src/visualisers/PolyShadingTechnique.cc | 6 +-
src/visualisers/PolyShadingTechniqueAttributes.cc | 2 +-
src/visualisers/PolyShadingTechniqueAttributes.h | 2 +-
src/visualisers/SampleContourMethodAttributes.h | 2 +-
src/visualisers/SegmentJoiner.cc | 5 +-
src/visualisers/SymbolIndividualModeAttributes.h | 2 +-
src/visualisers/SymbolTableModeAttributes.h | 2 +-
src/visualisers/WindPlotting.cc | 3 +-
src/web/Makefile.in | 2 +
src/web/ObsJSon.cc | 14 +-
src/web/ObsJSon.h | 6 +-
src/web/ObsJSonAttributes.cc | 2 +-
src/web/WrepJSonAttributes.cc | 2 +-
src/xml/Makefile.in | 2 +
src/xml/graph_params.xml | 14 +-
test/C/Makefile.in | 2 +
test/MagML/Makefile.in | 2 +
test/Makefile.in | 2 +
test/fortran/Makefile.in | 2 +
test/python/Makefile.in | 2 +
tools/Makefile.in | 2 +
version.sh | 6 +-
216 files changed, 1768 insertions(+), 1732 deletions(-)
diff --git a/COPYING b/COPYING
index f4ed7ed..457b4a0 100644
--- a/COPYING
+++ b/COPYING
@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright 2007-2012 European Centre for Medium-Range Weather Forecasts (ECMWF)
+ Copyright 2007-2013 European Centre for Medium-Range Weather Forecasts (ECMWF)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/ChangeLog b/ChangeLog
index e9bed51..3f309f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,635 @@
Changes in Magics++ (for developers - users should read 'NEWS')
===============================================================
+
+Change 83492 on 2013/03/02 by cgs at cgs
+
+ Add CSV decoder in the python interface
+
+Change 83485 on 2013/03/01 by cgs at cgs
+
+ Graph - Big fix in Wind Plotting
+
+Change 83460 on 2013/03/01 by cgs at cgs
+
+ Tutorial - scaling netcdf + minput in geographical [integrate]
+
+Change 83148 on 2013/02/20 by cgs at cgs
+
+ CurevArea - Fix issues with clipping [MAGP-152][integrate]
+
+Change 83110 on 2013/02/19 by cgs at cgs
+
+ Legend - In metview the legend for advanced wind plotting was not reset between frame [ MAGP-204] [integrate]
+
+Change 83097 on 2013/02/19 by cgs at cgs
+
+ Histogram - Fix setting of colours [METV-326][integrate]
+
+Change 83071 on 2013/02/18 by cgi at cgi_metview_4
+
+ NetCDF matrix - fixed issue where automatic date Y axis was not plotting any data [METV-330]
+
+Change 83067 on 2013/02/18 by cgm at magics_opensuse113
+
+ VERSION - 2.18.13
+
+Change 82951 on 2013/02/14 by cgs at cgs
+
+ Axis - Precsion issue when computing ticks [MAGP-354][integrate]
+
+Change 82936 on 2013/02/14 by cgs at cgs
+
+ Bar - implements graph_shade_dot_density and graph_shade_dot_size [MAGP-355][integrate]
+
+Change 82924 on 2013/02/14 by cgm at magics_opensuse113
+
+ VERSION 2.18.12
+
+Change 82766 on 2013/02/12 by cgs at cgs
+
+ Netcdf - fix problem in the setting date axis [METV-330][integrate]
+
+Change 82645 on 2013/02/11 by cgm at magics_opensuse113
+
+ VERSION back to 2.18.11 for an other fix
+
+Change 82642 on 2013/02/11 by cgs at cgs
+
+ Contour - test on array size [integrate]
+
+Change 82621 on 2013/02/10 by cgm at magics_opensuse113
+
+ VERSION 2.18.12
+
+Change 82525 on 2013/02/07 by cgs at cgs
+
+ Backward compatiblity - map_coastline_resolution was not pass to Magics [integrate]
+
+Change 82474 on 2013/02/06 by cgs at cgs
+
+ Obs - ignore missing data - clip observations [MAGP-243][integrate]
+
+Change 82317 on 2013/01/31 by cgs at cgs
+
+ Epsgram - fix automatic title in EpsXml ( used in MACC project) [MAGP-349][integrate]
+
+Change 82286 on 2013/01/29 by cgm at magics_opensuse113
+
+ VERSION 2.18.11
+
+Change 82271 on 2013/01/29 by cgs at cgs
+
+ Graph- increase default values for suppress_above and below parameters [MAGP-346][integrate]
+
+Change 82262 on 2013/01/29 by cgs at cgs
+
+ Legend - adjust layout for wind legend [MAGP-347][integrate]
+
+Change 82209 on 2013/01/28 by cgs at cgs
+
+ Contouring - small fix in the area computation [MAGP-342][integrate]
+
+Change 82203 on 2013/01/26 by cgm at magicsIBM
+
+ COMPILE add options for aix
+
+Change 82160 on 2013/01/24 by cgm at magics_opensuse113
+
+ VERSION 2.18.10
+
+Change 82081 on 2013/01/22 by cgs at cgs
+
+ epsgram - update templates [MAGP-340]
+
+Change 82072 on 2013/01/22 by cgs at cgs
+
+ epsgram - fix problem in eps template [MAGP-340]
+
+Change 82010 on 2013/01/21 by cgs at cgs
+
+ fix bug in intergrate
+
+Change 81958 on 2013/01/17 by cgs at cgs
+
+ Contouring - improve shading of falt fields [MAGP-306][integrate]
+
+Change 81939 on 2013/01/17 by cgs at cgs
+
+ Contouring - Small fix in IntervalSelection [MAGP-336]
+ CartesianProjection - Fix bug in setting logarithmic axis [MAGP-332]
+
+Change 81907 on 2013/01/16 by cgs at cgs
+
+ Contouring - Fix unwanted isolines [MAGP-334][integrate]
+
+Change 81877 on 2013/01/15 by cgs at cgs
+
+ Netcdf - Fix in date setting [MAGP-333][integrate]
+
+Change 81866 on 2013/01/14 by cgs at cgs
+
+ Date Axis - reverse date implemented [MAGP-312][integrate]
+
+Change 81864 on 2013/01/14 by cgs at cgs
+
+ Axis - fix bug in months axis [MAGP-325][integrate]
+
+Change 81862 on 2013/01/14 by cgs at cgs
+
+ Contouring : adjsutemnt of the IntervalList method [MAGP-317][integrate]
+
+Change 81858 on 2013/01/14 by cgs at cgs
+
+ GridShading- Fix bug in CartesianView [MAGP-314][integrate]
+
+Change 81854 on 2013/01/14 by cgs at cgs
+
+ Grib - ScanningMode was ignored foar regulargaussian [MAGP-311] [integrate]
+
+Change 81848 on 2013/01/14 by cgs at cgs
+
+ Netcdf - Fix pb in XYMatrix using date [MAGP-331][integrate]
+
+Change 81846 on 2013/01/14 by cgs at cgs
+
+ Netcdf : wrong matrix intilalisation when using a sub-area [MAGP-308][integrate]
+
+Change 81838 on 2013/01/14 by cgm at magics_opensuse113
+
+ DRIVERS - remove 'cout'
+
+Change 81836 on 2013/01/11 by cgs at cgs
+
+ Metview-Printing : fix bug when using multiple drivers [integrate]
+
+Change 81808 on 2013/01/10 by cgs at cgs
+
+ Legend - missing legend in metview [MAGP-329][integrate]
+
+Change 81805 on 2013/01/10 by cgs at cgs
+
+ Shading - Fix random shading in Metview [MAGP-328][integrate]
+
+Change 81792 on 2013/01/10 by cgr at cgr
+
+ Qt driver: When font settings are used - text layout breaks MAGP-326
+
+Change 81709 on 2013/01/07 by cgs at cgs
+
+ NetcdfDecoder - fix pb in getting the value for mssing data. [MAGP-319][integrate]
+
+Change 81597 on 2012/12/28 by cgm at magicsIBM
+
+ COMPILE AIX disable shared library build (which caused 'magmlx' to fail)
+
+Change 81534 on 2012/12/20 by cgi at cgi_metview_4
+
+ Axis: reduced the maximum number of geo axis labels from 20 to 10 in order to avoid overlapping [MAGP-315]
+
+Change 81528 on 2012/12/20 by cgm at magics_opensuse113
+
+ DRIVERS - Correct possitioning of text around symbols [MAGP-177]
+
+Change 81524 on 2012/12/19 by cgm at magics_opensuse113
+
+ DRIVERS - PS support rotated text if it contains special characters [MAGP-304]
+
+Change 81523 on 2012/12/19 by cgm at magics_opensuse113
+
+ VERSION - 2.18.9
+
+Change 81516 on 2012/12/19 by cgi at cgi_metview_4
+
+ NetCDF: fixed issue where some netCDF matrices were throwing an exception because of problems with floating-point precision. It's worth keeping an eye on this though. [MAGP-313]
+
+Change 80682 on 2012/12/12 by cgs at cgs
+
+ Fix small bug in format.[integrate]
+
+Change 80647 on 2012/12/12 by cgm at magics_opensuse113
+
+ LICENSE - remove unneccessary files which were highlighted in Palamida scan (MAGP-305)
+
+Change 80577 on 2012/12/07 by cgm at magics_opensuse113
+
+ VERSION - 2.18.8
+
+Change 80545 on 2012/12/06 by cgs at cgs
+
+ Contour - Small fix in GridShading [integrate]
+
+Change 80536 on 2012/12/06 by cgs at cgs
+
+ take print out
+
+Change 80531 on 2012/12/06 by cgs at cgs
+
+ Legend - Fix issues with users defined text entries [MAGP-296][integrate]
+
+Change 80519 on 2012/12/06 by cgs at cgs
+
+ Netcdf- Handle transposed matrix definition + mssing value [MAGP-295] [MAGP-294][integrate]
+
+Change 80515 on 2012/12/06 by cgm at magics_opensuse113
+
+ USE SCRIPTS - 2.18.6
+
+Change 80491 on 2012/12/05 by cgs at cgs
+
+ Shading - smal fix in shading
+
+Change 80487 on 2012/12/05 by cgm at magics_opensuse113
+
+ USE SCRIPTS - correct link to old++
+
+Change 80480 on 2012/12/05 by cgm at magics_opensuse113
+
+ PYTHON - test on setting rpaths
+
+Change 80479 on 2012/12/05 by cgm at magics_opensuse113
+
+ USE SCRIPTS - for release of 2.18.6 as default user version
+
+Change 80466 on 2012/12/05 by cgm at magics_opensuse113
+
+ USE SCRIPTS - set 'new++' to 2.18.5 - use odb 0.9.21
+
+Change 80465 on 2012/12/05 by cgm at magics_opensuse113
+
+ USE SCRIPTS - set old++ too 2.14.11
+
+Change 80464 on 2012/12/05 by cgm at magics_opensuse113
+
+ VERSION 2.18.7
+
+Change 80463 on 2012/12/05 by cgs at cgs
+
+ improve test in regression suite
+
+Change 80457 on 2012/12/04 by cgm at magics_opensuse113
+
+ VERSION 2.18.6
+
+Change 80447 on 2012/12/04 by cgs at cgs
+
+ Oda - Improved error message
+
+Change 80446 on 2012/12/04 by cgs at cgs
+
+ Odb - improve error checking [integrate]
+
+Change 80435 on 2012/12/04 by cgm at magics_opensuse113
+
+ ODB - move to version 0.9.21 (version used by RD)
+
+Change 80427 on 2012/12/04 by cgm at magics_opensuse113
+
+ VERSION 2.18.5
+
+Change 80424 on 2012/12/04 by cgs at cgs
+
+ Obstat - Fix Regression issues - Tick positionning + inputMatrix and grid shading [MAGP-292][integrate]
+
+Change 80422 on 2012/12/04 by cgs at cgs
+
+ Improved symbol plotting
+
+Change 80405 on 2012/12/03 by cgs at cgs
+
+ Print - small print removed
+
+Change 80402 on 2012/12/03 by cgs at cgs
+
+ Legend - Fix histogram legend [MAGP-293][integrate]
+
+Change 80376 on 2012/12/03 by cgm at magics_opensuse113
+
+ ODB - move to ODB_API 0.9.24
+
+Change 80375 on 2012/12/03 by cgs at cgs
+
+ Obstat - Fix Regression issues - Tick positionning + inputMatrix and grid shading [MAGP-292] [integrate]
+
+Change 80361 on 2012/12/02 by cgm at magics_opensuse113
+
+ USE SCRIPTS - changes for 2.18.2 release (mostly AIX)
+
+Change 80338 on 2012/11/29 by cgs at cgs
+
+ Wind- Prevent wind crashing when bno wind to plot[MAGP-291][integrate]
+
+Change 80319 on 2012/11/29 by cgm at magics_opensuse113
+
+ VERSION 2.18.4
+
+Change 80285 on 2012/11/28 by cgs at cgs
+
+ Text - use of < was cousingan abort when using the static library [MAGP-290]
+
+Change 80163 on 2012/11/22 by cgm at cgm_meshon
+
+ COMPILE remove scin option
+
+Change 80099 on 2012/11/20 by cgm at magics_opensuse113
+
+ DRIVERS - CAIRO correct positioning in complex layouts (MAGP-244)
+
+Change 80071 on 2012/11/20 by cgs at cgs
+
+ Cartesian Projection - small fix in logarithmic axis [MAGP-276] [integrate]
+
+Change 80058 on 2012/11/19 by cgm at magics_opensuse113
+
+ DRIVERS - KMZ fix missing files fatal error MAGP-43
+
+Change 80049 on 2012/11/19 by cgm at magics_opensuse113
+
+ VERSION - 2.18.3
+
+Change 80039 on 2012/11/19 by cgm at magics_opensuse113
+
+ COMPILATION - remove scin call
+
+Change 79835 on 2012/11/15 by cgs at cgs
+
+ Symbol - Allow blanking of text [MAGP-286][integrate]
+
+Change 79815 on 2012/11/15 by cgs at cgs
+
+ Symbol - Allow resize of image when image are used as symbol [MAGP-283][integrate]
+
+Change 79785 on 2012/11/14 by cgs at cgs
+
+ Contour - Small fix in contour [MAGP-280][integrate]
+
+Change 79784 on 2012/11/14 by cgs at cgs
+
+ Contour - small fix in contouring [MAGP_280] [integrate]
+
+Change 79734 on 2012/11/12 by cgs at cgs
+
+ Symbol - Add a new option "both" to symbol type to allow the value to be plotted next to the symbol. [MAGP-273]
+
+Change 79626 on 2012/11/07 by cgm at cgm_meshon
+
+ PYTHON - move interface into separate sub directory to enable tests to run from this local build (MAGP-275)
+
+Change 79625 on 2012/11/07 by cgm at cgm_meshon
+
+ TESTS - ensure environment variables are set correctly, so that the local build is used for tests and not a central installation (MAGP-275)
+
+Change 79582 on 2012/11/07 by cgm at magics_opensuse113
+
+ DRIVERS Cairo - remove CairoDriverRaster which was anyway not used but caused compiler warnings
+
+Change 79580 on 2012/11/06 by cgm at magics_opensuse113
+
+ DRIVERS Cairo - enable that antialias can be switched off MAGP-274
+
+Change 79579 on 2012/11/06 by cgm at magics_opensuse113
+
+ TOOLS - correct spelling of MeteoroMagLogical (refactoring gone bad?)
+
+Change 79410 on 2012/10/31 by cgs at cgs
+
+ TableDecoder - Fix crash in binning [MAGP-250][integrate]
+
+Change 79257 on 2012/10/29 by cgs at cgs
+
+ Obs - Fix incompatibility between bufr and Json [integrate]
+
+Change 79243 on 2012/10/29 by cgm at magics_opensuse113
+
+ VERSION 2.18.2 - maintenance
+
+Change 79191 on 2012/10/25 by cgm at magics_opensuse113
+
+ PYTHON - avoid empty lib names / paths and include files in tarball if python is disabled
+
+Change 79190 on 2012/10/25 by cgm at magics_opensuse113
+
+ VERSION - back to 2.18.1 (needs more changes for tarball)
+
+Change 79189 on 2012/10/25 by cgm at magics_opensuse113
+
+ PYTHON - remove old interface
+
+Change 79187 on 2012/10/25 by cgm at magics_opensuse113
+
+ MAKE - add missing file to build tarball
+
+Change 79145 on 2012/10/25 by cgm at magics_opensuse113
+
+ VERSION 2.18.2 - maintenance
+
+Change 79013 on 2012/10/22 by cgm at magics_opensuse113
+
+ PYTHON - changes for ECMWF libraries
+
+Change 79012 on 2012/10/21 by cgm at cgm_meshon
+
+ PYTHON - update for outside-ECMWF installations
+
+Change 78992 on 2012/10/19 by cgm at magics_opensuse113
+
+ BOOST - comment out version test which is not necessary
+
+Change 78988 on 2012/10/19 by cgm at magics_opensuse113
+
+ MAKE- remove linker flag to be able to compile & link on MAC OS X
+
+Change 78979 on 2012/10/19 by cgm at magics_opensuse113
+
+ MAKE - enable build of tarball if python is disabled
+
+Change 78974 on 2012/10/19 by cgm at magics_opensuse113
+
+ MAKE - add missing file for tarball
+
+Change 78932 on 2012/10/18 by cgr at cgr
+
+ ODB: ODB plotting fails if duplicated columns present in the input ODB MAGP-246
+
+Change 78905 on 2012/10/17 by cgm at magics_opensuse113
+
+ VERSION 2.18.1
+
+Change 78892 on 2012/10/17 by cgs at cgs
+
+ Fix linking issue after integration
+
+Change 78871 on 2012/10/17 by cgs at cgs
+
+ Observations - enable use of users template to customise observation plotting [MAGP-243] [integrate]
+ Add Regression test suite
+
+Change 78868 on 2012/10/17 by cgi at cgi_metview_4
+
+ BOOST: updated version to 1.50.0 in r2.18 branch
+
+Change 78853 on 2012/10/17 by cgi at cgi_metview_4
+
+ CONTOUR: in Count level selection mode, set close-enough-to-zero to zero to avoid formatting issues with the legend [MAGP-242] [r2.18 branch]
+
+Change 78729 on 2012/10/12 by cgs at cgs
+
+ MagML - allow import object
+
+Change 78714 on 2012/10/11 by cgs at cgs
+
+ Symbol - Trajectory in MagML + improve connected symbol and text. [MAGP-238][integrate]
+
+Change 78708 on 2012/10/11 by cgs at cgs
+
+ Proj4 - Add Projection EPSG:3857 + update the regression test suite [MAGP-192] [integrate]
+
+Change 78682 on 2012/10/11 by cgs at cgs
+
+ SymbolPlotting - Close lats Interval for AdvancedTableMode [MAGP-240][integrate]
+
+Change 78613 on 2012/10/10 by cgm at magics_opensuse113
+
+ PYTHON - set path to Fortran libraries (for Emoslib)
+
+Change 78612 on 2012/10/09 by cgm at cgm_orion
+
+ PYTHON - make FLIB(S) more flexible
+
+Change 78611 on 2012/10/09 by cgm at magics_opensuse113
+
+ PYTHON - updates to setup.py
+
+Change 78602 on 2012/10/09 by cgr at cgr
+
+ API : Add thermodynamic functions MAGP-127
+
+Change 78558 on 2012/10/08 by cgr at cgr
+
+ ODB : Record and make available information about the data points visualised in Metview MAGP-222
+
+Change 78556 on 2012/10/08 by cgs at cgs
+
+ Python - Inoput Matrix conflict of parameters names [MAGP-236][integrate]
+
+Change 78554 on 2012/10/08 by cgr at cgr
+
+ ODB : Record and make available information about the data points visualised in Metview MAGP-222
+
+Change 78553 on 2012/10/08 by cgs at cgs
+
+ Grib - Grid values and metadata in Metview [MAGP-235] [integrate]
+
+Change 78550 on 2012/10/05 by cgm at cgm_orion
+
+ PYTHON - fix for makefile to use new directory
+
+Change 78549 on 2012/10/05 by cgm at magics_opensuse113
+
+ PYTHON - test for new python interface
+
+Change 78527 on 2012/10/05 by cgr at cgr
+
+ Drivers : Improve plotting speed in the QtDdriver MAGP-233
+
+Change 78519 on 2012/10/05 by cgs at cgs
+
+ Wind - Fix the WrapAround for rooated grids [ MAGP-232][integrate]
+ Input Matrix - Fix the WrapAround for Wind Plotting [ MAGP-231] [integrate]
+
+Change 78489 on 2012/10/04 by cgs at cgs
+
+ InputData - Add input for CurveArea Plotting [Metview][MAG-230][integrate]
+
+Change 78468 on 2012/10/04 by cgr at cgr
+
+ ODB : Record and make available information about the data points visualised in Metview MAGP-222
+
+Change 78466 on 2012/10/04 by cgs at cgs
+
+ Wind plotting - fix the last blue arrow [MAGP-225][integrate]
+
+Change 78464 on 2012/10/04 by cgs at cgs
+
+ Cleaning
+
+Change 78463 on 2012/10/04 by cgs at cgs
+
+ cleaning
+
+Change 78460 on 2012/10/04 by cgs at cgs
+
+ Contour - Improve shading of non global fields [MAGP-227] [integrate]
+ Contour - Fix issue for shading of flat fields [MAGP-229] [integrate]
+
+Change 78433 on 2012/10/03 by cgm at magics_opensuse113
+
+ VERSION 2.18.0
+
+Change 78428 on 2012/10/03 by cgs at cgs
+
+ Wind - Improve wind plotting for rotated grids. [MAGP-219] [integrate]
+ Contour - fix grid-shading issue for nonglobal fields [MAGP-227] [integrate]
+
+Change 78427 on 2012/10/03 by cgs at cgs
+
+ Metview - Fix Highlight problem [MAGP-228] [integrate]
+
+Change 78417 on 2012/10/03 by cgm at magics_opensuse113
+
+ VERSION 2.17.2
+
+Change 78408 on 2012/10/03 by cgm at magics_opensuse113
+
+ INTEGRATE - AIX compiler changes from 2.16
+
+Change 78370 on 2012/10/02 by cgs at cgs
+
+ Metview - Allow position_list in axis plotting [integrate]
+
+Change 78305 on 2012/09/28 by cgs at cgs
+
+ contouring - optimisation
+
+Change 78296 on 2012/09/28 by cgs at cgs
+
+ Cleaning - print
+
+Change 78290 on 2012/09/28 by cgs at cgs
+
+ Regression Suite - Fix issues with grid and cell Shading [MAPG-223] [MAGP-210] [integrate]
+
+Change 78279 on 2012/09/27 by cgm at cgm_meshon
+
+ MAKE - add header file required for GCC 4.7
+
+Change 78257 on 2012/09/27 by cgs at cgs
+
+ contour - fix small bug wiith handling missing data
+
+Change 78256 on 2012/09/27 by cgs at cgs
+
+ Grib - Implements wind plotting for rotated gribs [MAGP-219] [integrate]
+
+Change 78153 on 2012/09/25 by cgs at cgs
+
+ Contour - optimisation and missing data [MAGP-221][integrate]
+
+Change 78150 on 2012/09/25 by cgs at cgs
+
+ Contour - optimisation and missing data [MAGP-221][integrate]
+
+Change 78028 on 2012/09/21 by cgi at cgi_metview_4
+
+ BUILD: removed Qt-OpenGL dependency (also removed Qt-Network dependency from Magics) [Metview 4.3 branch, Magics r2.18 branch]
+
+Change 77935 on 2012/09/18 by cgs at cgs
+
+ Text - Fix position of text in titlebox [MAGP-220] [integrate from main]
+
+Change 77909 on 2012/09/18 by cgm at magics_opensuse113
+
+ BRANCH - new branch for version 2.18 (for now still called 2.17.x)
+
Change 69349 on 2012/02/24 by cgs at cgs
Magics: Probkem in setting matrix.
diff --git a/LICENSE b/LICENSE
index f4ed7ed..457b4a0 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright 2007-2012 European Centre for Medium-Range Weather Forecasts (ECMWF)
+ Copyright 2007-2013 European Centre for Medium-Range Weather Forecasts (ECMWF)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/Makefile.in b/Makefile.in
index 60e79fe..734b4cd 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -173,6 +173,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -257,6 +258,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/README b/README
index 08645e0..0b3ce76 100644
--- a/README
+++ b/README
@@ -2,45 +2,20 @@
Magics++ README
===============
-1. Changes to MAGICS 6
-2. Getting the source
-3. Installation
-4. License
-
-
-1. Changes to MAGICS 6
-======================
-
-Before you install Magics++ you might want to check the
-list features of MAGICS 6 not implemented (yet):
-
-- support for Lambert projection
-- wind: streamlines and isotachs
-- specification groups
-- pie charts
-
-Changes
--------
-
-- Default coast line colour has change from yellow to black
-
-- Default scaling of PostScript output is now 1.0 instead of 0.95
- --> set parameter OUTPUT_PS_SCALE to 0.95 if the old scaling is required
-
-
-
-2. Getting the source
+1. Getting the source
=====================
-The tarball of the source can be downloaded from Software Services
-at ECMWF ( http://www.ecmwf.int/products/data/software/magics++.html ).
+The tarball of the source can be downloaded from
+
+ https://software.ecmwf.int/magics/Releases
2. Installation
===============
Please read the installation guide:
-http://www.ecmwf.int/publications/manuals/magics/magplus/manuals/pdf/magics_install.pdf
+
+ https://software.ecmwf.int/magics/Installation+Guide
3. License
diff --git a/apps/MagMLInterpretor/Makefile.in b/apps/MagMLInterpretor/Makefile.in
index 79e1300..eab5ba7 100644
--- a/apps/MagMLInterpretor/Makefile.in
+++ b/apps/MagMLInterpretor/Makefile.in
@@ -130,6 +130,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -214,6 +215,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/apps/Makefile.in b/apps/Makefile.in
index dd385ec..8559888 100644
--- a/apps/Makefile.in
+++ b/apps/Makefile.in
@@ -130,6 +130,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -214,6 +215,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/apps/metgram/10_days_epsgram.xml b/apps/metgram/10_days_epsgram.xml
index 70a3b21..4362af4 100644
--- a/apps/metgram/10_days_epsgram.xml
+++ b/apps/metgram/10_days_epsgram.xml
@@ -9,24 +9,30 @@
<none/>
</epsgram>
- <text id="title" font='sansserif' colour='blue' font_size='0.4'
+ <text id="title" font='sansserif' colour='navy' font_size='0.4'
justification='left' display='absolute'>
</text>
- <horizontal_axis id="haxis" axis_line="false" line_thickness="4" colour='kelly_green'>
- <nolabel/>
- <date/>
- <noline/>
- <minortick colour='kelly_green'/>
- <grid line_style="dot" colour='kelly_green'/>
- <tick colour='kelly_green'/>
- </horizontal_axis>
+ <horizontal_axis axis_grid= "on"
+ axis_grid_colour= "Rgb(0.5, 0.5, 0.5)"
+ axis_grid_line_style= "dash"
+ axis_line_colour= "navy"
+ axis_minor_tick= "on"
+ axis_minor_tick_colour= "navy"
+ axis_tick_colour= "navy"
+ axis_tick_label= "off" id="haxis"/>
- <vertical_axis id="vaxis" axis_line="false" line_thickness="4" colour='kelly_green'>
- <noline/>
- <label colour='kelly_green' quality='sansserif' height='0.3'/>
- <grid line_style="dot" colour='kelly_green'/>
- <tick colour='kelly_green'/>
- </vertical_axis>
+ <vertical_axis id="vaxis"
+ axis_grid="on"
+ axis_grid_colour= "grey"
+ axis_grid_line_style= "dash"
+ axis_grid_reference_level= "0"
+ axis_grid_reference_thickness= "1"
+ axis_label_font="sansserif"
+ axis_line="on"
+ axis_line_colour="navy"
+ axis_tick_colour="navy"
+ axis_tick_label_colour="navy"
+ axis_tick_label_height= "0.3"/>
<map id='box' margin_bottom='7%' margin_top='15%' border-colour='Rgb(0.5, 0.5, 0.5)'/>
</definition>
<drivers>
@@ -49,11 +55,17 @@
<y_regular y_min='0' y_max='8'/>
</cartesian>
- <text margin_bottom='80%' use_id='title'/>
- <horizontal_axis use_id='haxis'/>
+ <text margin_bottom='85%' use_id='title' >
+ <font size='0.5'>EPS Meteogram </font><br/>
+ <font size='0.4'><spot_info key='station'/> <spot_info key='location'/></font><br/>
+ <font size='0.4'>Deterministic Forecast and EPS Distribution <spot_info key='base_date'/> </font>
+ <br/><br/>
+ <font size='0.4'><spot_info key='parameter'/> </font>
+ </text>
+ <horizontal_axis use_id="haxis"/>
<vertical_axis use_id='vaxis'/>
<plot>
- <epsgram use_id="station" parameter="cloud-cover" long_title='true'/>
+ <epsgram use_id="station" parameter="cloud-cover" />
<epsgraph deterministic='on' whisker='on'> <both/> </epsgraph>
</plot>
</map>
@@ -69,7 +81,9 @@
</cartesian>
<horizontal_axis use_id='haxis'/>
<vertical_axis use_id='vaxis'/>
- <text margin_bottom='84%' use_id='title'/>
+ <text margin_bottom='90s%' use_id='title' >
+ <font size='0.4'><spot_info key='parameter'/> </font>
+ </text>
<plot>
<epsgram use_id="station" y_axis_threshold='3' parameter="precip"/>
<epsgraph deterministic='on' whisker='on'> <both/> </epsgraph>
@@ -86,7 +100,10 @@
</cartesian>
<horizontal_axis use_id='haxis'/>
<vertical_axis use_id='vaxis'/>
- <text margin_bottom='78%' use_id='title'/>
+ <text margin_bottom='85%' use_id='title' >
+ <font size='0.4'><spot_info key='parameter'/> </font>
+ </text>
+
<plot>
<epsgram use_id="station" parameter="10m-wind"/>
<epsgraph deterministic='on' whisker='on'> <both/> </epsgraph>
@@ -97,15 +114,16 @@
<nopageid />
- line_system_plot='on' line_date_plot='off' line_errors_plot='off'
- font='sansserif' line_colour='Rgb(0.8, 0.8, 0.8)'s
+
<map margin_bottom='30%' margin_top='15%' border-colour='Rgb(0.5, 0.5, 0.5)' >
<cartesian>
<x_date automatic='on'/>
<y_regular automatic='on'/>
</cartesian>
- <text margin_bottom='80%' use_id='title'/>
+ <text margin_bottom='85%' use_id='title' >
+ <font size='0.4'><spot_info key='parameter'/> </font>
+ </text>
<vertical_axis use_id='vaxis'/>
<horizontal_axis
@@ -126,11 +144,23 @@
<plot>
<epsgram use_id="station" parameter="2mt"/>
- <epsgraph > <both/> </epsgraph>
+ <epsgraph legend='on' eps_legend_font_size= "0.4" eps_legend_font_colour= "navy"> <both/> </epsgraph>
</plot>
- <legend display='absolute' bottom='-5%' left='0%' width='50%' height='25%'
- plot_direction='column' columns='3'
- text_colour='Rgb(0.5, 0.5, 0.5)' border='off' blanking='off'/>
- </map>
+
+
+
+ </map>
+ <legend
+ border= "off"
+ bottom= "-10%"
+ display= "absolute"
+ height= "25%"
+ left= "0%"
+
+ legend_entry_text_width= "99."
+ legend_plot_direction= "column"
+ legend_text_height= "0.5"
+ width= "60%"
+ />
</page>
</magics>
diff --git a/apps/metgram/10_days_wave_epsgram.xml b/apps/metgram/10_days_wave_epsgram.xml
index 452ca21..6d52851 100644
--- a/apps/metgram/10_days_wave_epsgram.xml
+++ b/apps/metgram/10_days_wave_epsgram.xml
@@ -29,28 +29,33 @@
</epsgram>
<text id="title" justification="left" font_style='bold' font_size='0.4'
- colour='navy' font='sansserif' border='off' />
+ colour='navy' font='sansserif' border='off'/>
<map id="box" border='on'
border_colour='navy' border_thickness='2'/>
- <horizontal_axis id="haxis" axis_line="false" line_thickness="4" colour='navy'>
- <automatic/>
- <nolabel/>
- <date/>
- <noline/>
- <nominortick colour='kelly_green'/>
- <grid line_style="dash" colour='kelly_green'/>
- <tick colour='kelly_green'/>
- </horizontal_axis>
+ <horizontal_axis id="haxis"
+ axis_grid= "on"
+ axis_grid_colour= "evergreen"
+ axis_grid_line_style= "dash"
+ axis_line_colour= "navy"
+ axis_minor_tick= "on"
+ axis_minor_tick_colour= "navy"
+ axis_tick_colour= "navy"
+ axis_tick_label= "off"
+ axis_type= "date"
+ />
- <vertical_axis id="vaxis" axis_line="false" line_thickness="4" colour='navy'>
- <automatic/>
- <noline/>
- <label colour='navy' quality='sansserif'/>
- <grid line_style="dash" colour='kelly_green'/>
- <tick colour='kelly_green'/>
- </vertical_axis>
+ <vertical_axis id="vaxis"
+
+ axis_grid_colour= "evergreen"
+ axis_grid_line_style= "dash"
+ axis_line= "on"
+ axis_line_colour= "navy"
+ axis_tick= "off"
+
+ />
+
</definition>
<drivers>
<$ps/>
@@ -64,20 +69,26 @@
<page height="10%" border='off'>
<$meta/>
<nopageid/>
- <text margin_left='10%' margin_bottom='0' height='35%' width='40%' use_id='title'/>
+
+ <text display='absolute' bottom='74%' height='10%' width='90%' use_id='title'>
+ <font size='0.4'>Wave Epsgram</font> <br/>
+ <font size='0.4'><spot_info key='station'/></font> <br/>
+ <font size='0.4'>Deterministic Forecast and EPS Distribution <spot_info key='base_date'/></font> <br/><br/>
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
<legend display='absolute' height='30%' width='30%' bottom='60%'
plot_direction='column' left='50%'
text_colour='navy' border='off' blanking='off'/>
- <map height='65%' border='on' margin_top='1%'
+ <map display='absolute' height='65%' bottom='0' border='on' margin_top='1%'
border_colour='navy' border_thickness='2'>
-
+
<cartesian>
<x_date automatic='on'/>
<y_regular y_min="-43200" y_max="43200" />
</cartesian>
- <horizontal_axis use_id="haxis"/>
- <vertical_axis use_id="vaxis"><nolabel/><notick/><nogrid/></vertical_axis>
+ <horizontal_axis use_id="haxis" />
+ <vertical_axis use_id="vaxis" axis_grid='off' axis_tick_label='off'/>
<plot>
<epsgram use_id="eps_wind" type='epsrose' parameter="249.140"
long_title='true' title_text='Wave Epsgram' long_title_height='off'
@@ -92,7 +103,9 @@
</page>
<page height="20%" border='on'>
<nopageid/>
- <text display='absolute' bottom='74%' height='10%' width='90%' use_id='title'/>
+ <text display='absolute' bottom='83%' height='10%' width='90%' use_id='title'>
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
<map use_id='box' display='absolute' bottom='0%' height='90%'>
<cartesian>
<x_date automatic='on' />
@@ -105,15 +118,18 @@
<epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy'> <both/> </epsgraph>
</plot>
<horizontal_axis use_id="haxis"/>
- <vertical_axis use_id="vaxis"/>
+ <vertical_axis use_id="vaxis" axis_grid='on'/>
</map>
</page>
<page height="20%" border='on'>
- <nopageid/>
- <text display='absolute' bottom='74%' height='10%' width='90%' use_id='title'/>
+ <nopageid/>
+ <text display='absolute' bottom='83%' height='10%' width='90%' use_id='title'>
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
+
<map use_id='box' display='absolute' bottom='0%' height='90%'>
<cartesian>
<x_date automatic='on' />
@@ -128,13 +144,16 @@
<epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy'> <both/> </epsgraph>
</plot>
<horizontal_axis use_id="haxis"/>
- <vertical_axis use_id="vaxis"/>
+ <vertical_axis use_id="vaxis" axis_grid='on'/>
</map>
</page>
<page height="10%" border='off'>
<nopageid/>
- <text display='absolute' bottom='52%' height='10%' width='90%' use_id='title'/>
+ <text display='absolute' bottom='65%' height='10%' width='90%' use_id='title'>
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
+
<legend display='absolute' height='30%' width='30%' bottom='60%'
plot_direction='column' left='45%'
text_colour='navy' border='off' blanking='off'/>
@@ -147,7 +166,7 @@
</cartesian>
<horizontal_axis use_id="haxis"/>
- <vertical_axis use_id="vaxis"><nolabel/><notick/><nogrid/></vertical_axis>
+ <vertical_axis use_id="vaxis" axis_tick_label='off'></vertical_axis>
<plot>
<epsgram use_id="eps_wave" type='epsrose' parameter="230.140" parameter_title='Mean wave direction ( oceanographic convention )'/>
<epswave rose_wind_colour='Rgb(0.925, 0.609, 0.953)' rose_wind_convention='oceanographic'/>
@@ -167,7 +186,9 @@
<page height="28%" border='off'>
<pageid line_system_plot='off' line_date_plot='off' line_errors_plot='off'
font='sansserif' line_colour='Rgb(0.8, 0.8, 0.8)'/>
- <text display='absolute' bottom='85%' height='10%' width='90%' use_id='title'/>
+ <text display='absolute' bottom='90%' height='10%' width='90%' use_id='title'>
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
<map display='absolute' bottom='30%' height='60%' legend='40%' border='on' border_colour='navy' border_thickness='2' margin_top='1%'>
<cartesian>
@@ -176,13 +197,13 @@
</cartesian>
<plot>
- <epsgram use_id="eps_wave" type='epswave' parameter="232.140" parameter_title='ignore'/>
- <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy'
+ <epsgram use_id="eps_wave" type='epswave' parameter="232.140" parameter_title='ignore' />
+ <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy' legend='on'
font='sansserif' font_colour='navy' legend_resolution='degrees'> <both/> </epsgraph>
</plot>
<plot>
<epsgram use_id="eps_wave_det" type='epswave' parameter="232.140" parameter_title='Mean wave period (s)'/>
- <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy'
+ <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy' legend='on'
font='sansserif' font_colour='navy' legend_resolution='degrees' > <both/> </epsgraph>
</plot>
<horizontal_axis
@@ -199,7 +220,7 @@
axis_type= "date"
axis_years_label_colour = "navy" />
- <vertical_axis use_id="vaxis"/>
+ <vertical_axis use_id="vaxis" axis_grid='on'/>
</map>
<legend display='absolute' width='47%' height='25%' bottom='-5%'
diff --git a/apps/metgram/15_days_epsgram.xml b/apps/metgram/15_days_epsgram.xml
index 641f197..6b6f035 100644
--- a/apps/metgram/15_days_epsgram.xml
+++ b/apps/metgram/15_days_epsgram.xml
@@ -18,30 +18,30 @@
border-colour='grey' border-thickness='2'/>
<horizontal_axis id="haxis"
- axis_tick_label='off'
- axis_grid='on'
- axis_grid_line_style='dash'
- axis_grid_colour='Rgb(0.5, 0.5, 0.5)'
- axis_line="false" line_thickness="4" colour='Rgb(0.5, 0.5, 0.5)'>
- <automatic/>
- <nolabel/>
- <date/>
- <noline/>
- <nominortick colour='Rgb(0.5, 0.5, 0.5)'/>
- <grid line_style="solid" colour='Rgb(0.5, 0.5, 0.5)'/>
- <tick colour='Rgb(0.5, 0.5, 0.5)'/>
- </horizontal_axis>
+ axis_grid= "on"
+ axis_grid_colour= "grey"
+ axis_grid_line_style= "dot"
+ axis_line_colour= "charcoal"
+ axis_minor_tick= "on"
+ axis_minor_tick_colour= "charcoal"
+ axis_tick_colour= "charcoal"
+ axis_tick_label="off"
+ axis_type= "date" />
+
+
- <vertical_axis id="vaxis" axis_grid='on'
- axis_grid_line_style='dash'
- axis_grid_colour='Rgb(0.5, 0.5, 0.5)'
- axis_line="false" line_thickness="4" colour='Rgb(0.5, 0.5, 0.5)'>
- <automatic/>
- <noline/>
- <label colour='Rgb(0.5, 0.5, 0.5)' quality='sansserif'/>
- <grid line_style="dash" colour='Rgb(0.5, 0.5, 0.5)'/>
- <tick colour='grey'/>
- </vertical_axis>
+ <vertical_axis id="vaxis"
+ axis_grid= "on"
+ axis_grid_colour= "grey"
+ axis_grid_line_style= "dot"
+ axis_grid_reference_level= "0"
+ axis_grid_reference_thickness= "1"
+ axis_label_font= "sansserif"
+ axis_line= "on"
+ axis_line_colour= "charcoal"
+ axis_tick_colour= "charcoal"
+ axis_tick_label_colour= "charcoal"
+ axis_tick_label_height= "0.3" />
</definition>
<drivers>
@@ -60,7 +60,12 @@
<nopageid/>
<$meta/>
<map use_id='box'>
- <text use_id='title' margin_bottom='80%' />
+ <text use_id='title' margin_bottom='85%' >
+ <font size='0.4'>Eps Meteogram</font> <br/>
+ <font size='0.4'><spot_info key='station'/></font> <br/>
+ <font size='0.4'>Extended Forecast based in EPS Distribution <spot_info key='base_date'/></font> <br/><br/>
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
<cartesian>
<x_date automatic='on' />
<y_regular automatic='on' />
@@ -76,7 +81,9 @@
<page height="19%" border='off'>
<nopageid/>
<map use_id='box' >
- <text margin_bottom='80%' use_id='title'/>
+ <text use_id='title' margin_bottom='85%' >
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
<cartesian>
<x_date automatic='on' />
<y_regular automatic='on' y_min='0' y_max='20' />
@@ -101,21 +108,25 @@
<x_date automatic='on'/>
<y_regular y_min="-43200" y_max="43200" />
</cartesian>
- <text bottom='55%' use_id='title'/>
+ <text use_id='title' margin_bottom='75%' >
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
<horizontal_axis use_id="haxis"/>
<vertical_axis use_id="vaxis" axis_tick_label='off' axis_tick='off' axis_grid='off'></vertical_axis>
<plot>
<epsgram use_id="eps" parameter="10m-wind-dd"/>
- <epswind rose_wind_colour='gold' rose_wind_border_colour='Rgb(0.5000, 0.5000, 0.5000)'/>
+ <epswind legend ='on' rose_wind_colour='gold' rose_wind_border_colour='Rgb(0.5000, 0.5000, 0.5000)'/>
</plot>
- <legend display='absolute' bottom='50%' left='1.25' width='20%' height='90%'
- text_colour='Rgb(0.5, 0.5, 0.5)' border='off' blanking='off'/>
- </map>
+
+ </map> <legend display='absolute' bottom='50%' left='65%' width='20%' height='90%'
+ text_colour='Rgb(0.5, 0.5, 0.5)' border='off' blanking='off'/>
</page>
<page height="19%" border='off'>
<nopageid/>
<map use_id='box'>
- <text margin_bottom='78%' use_id='title'/>
+ <text use_id='title' margin_bottom='85%' >
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
<cartesian>
<x_date automatic='on' />
<y_regular automatic='on' y_min='0' y_max='20' />
@@ -136,26 +147,36 @@
<x_date automatic='on'/>
<y_regular automatic='on'/>
</cartesian>
- <horizontal_axis use_id="haxis">
- <date>
- <both label_colour='Rgb(0.5, 0.5, 0.5)' label_height='0.3' />
- <month label_height='0.4' label_colour='Rgb(0.5, 0.5, 0.5)'> <monthandyear /> </month>
- <noyear height='0.4'/>
- </date>
- <label quality='sansserif'/>
- </horizontal_axis>
- <vertical_axis use_id="vaxis"/>
- <text margin_bottom='85%' use_id='title' display='absolute'/>
+ <horizontal_axis axis_days_label= "both"
+ axis_days_label_colour= "charcoal"
+ axis_days_label_height= "0.3"
+ axis_grid= "on"
+ axis_grid_colour= "Rgb(0.5, 0.5, 0.5)"
+ axis_grid_line_style= "dash"
+ axis_line_colour= "charcoal"
+ axis_minor_tick= "on"
+ axis_minor_tick_colour= "charcoal"
+ axis_months_label_colour= "charcoal"
+ axis_months_label_height= "0.3"
+ axis_tick_colour= "charcoal"
+ axis_type= "date"
+ axis_years_label_colour= "charcoal"
+ axis_years_label_height= "0.3"
+ />
+ <vertical_axis use_id='vaxis'/>
+ <text use_id='title' margin_bottom='90%' >
+ <font size='0.4'><spot_info key='parameter'/></font>
+ </text>
<plot>
<epsgram use_id="eps" parameter="temperature"/>
- <epsgraph border_colour='Rgb(0.5, 0.5, 0.5)'
+ <epsgraph border_colour='Rgb(0.5, 0.5, 0.5)' legend='on'
left_box_colour='sky' box_median_colour='black' right_box_colour='RGB(1.0, 0.222, 0.222)'
font='sansserif' font_colour='Rgb(0.5, 0.5, 0.5)' box_colour='grey'
box_border_colour='Rgb(0.5, 0.5, 0.5)'> <both/> </epsgraph>
</plot>
</map>
- <legend display='absolute' bottom='10%' left='20%' width='20%' height='25%'
- plot_direction='column' text_colour='Rgb(0.5, 0.5, 0.5)' border='on' blanking='off'/>
+ <legend display='absolute' bottom='0%' left='5%' width='20%' height='30%'
+ plot_direction='column' text_colour='Rgb(0.5, 0.5, 0.5)' border='off' blanking='off'/>
</page>
</magics>
diff --git a/apps/metgram/Makefile.in b/apps/metgram/Makefile.in
index b193d31..2097f61 100644
--- a/apps/metgram/Makefile.in
+++ b/apps/metgram/Makefile.in
@@ -154,6 +154,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -238,6 +239,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/configure b/configure
index 65e9252..374f817 100755
--- a/configure
+++ b/configure
@@ -860,6 +860,7 @@ raster
proj4
spot
bufr
+EMOS_LIB_PATH
EMOS_LIB_NAME
FORTRAN_LIB_PATH
GRIBAPI_ROOT
@@ -892,6 +893,7 @@ CPPLIBS
PLATFORM_DEFINES_MARS
SHLIB_EXT
AXX
+SWIG
python
NUMPY_INCLUDE
pkgpyexecdir
@@ -5513,13 +5515,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:5516: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:5518: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:5519: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:5521: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:5522: output\"" >&5)
+ (eval echo "\"\$as_me:5524: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -6724,7 +6726,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 6727 "configure"' > conftest.$ac_ext
+ echo '#line 6729 "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -7956,11 +7958,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7959: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7961: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7963: \$? = $ac_status" >&5
+ echo "$as_me:7965: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8295,11 +8297,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8298: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8300: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8302: \$? = $ac_status" >&5
+ echo "$as_me:8304: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8400,11 +8402,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8403: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8405: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8407: \$? = $ac_status" >&5
+ echo "$as_me:8409: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8455,11 +8457,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8458: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8460: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8462: \$? = $ac_status" >&5
+ echo "$as_me:8464: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -10822,7 +10824,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10825 "configure"
+#line 10827 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10918,7 +10920,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10921 "configure"
+#line 10923 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13806,11 +13808,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13809: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13811: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13813: \$? = $ac_status" >&5
+ echo "$as_me:13815: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13905,11 +13907,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13908: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13910: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13912: \$? = $ac_status" >&5
+ echo "$as_me:13914: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13957,11 +13959,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13960: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13962: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13964: \$? = $ac_status" >&5
+ echo "$as_me:13966: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15765,11 +15767,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15768: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15770: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15772: \$? = $ac_status" >&5
+ echo "$as_me:15774: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15864,11 +15866,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15867: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15869: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15871: \$? = $ac_status" >&5
+ echo "$as_me:15873: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15916,11 +15918,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15919: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15921: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15923: \$? = $ac_status" >&5
+ echo "$as_me:15925: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -18101,6 +18103,44 @@ $as_echo "yes" >&6; }
$as_echo "#define MAGICS_PYTHON 1" >>confdefs.h
+
+ # Extract the first word of "swig", so it can be a program name with args.
+set dummy swig; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_SWIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$SWIG"; then
+ ac_cv_prog_SWIG="$SWIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_SWIG="swig"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+SWIG=$ac_cv_prog_SWIG
+if test -n "$SWIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
+$as_echo "$SWIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
fi
#
@@ -19948,11 +19988,12 @@ fi
EMOS_LIB_NAME="emosR64"
+EMOS_LIB_PATH="/usr/local/lib"
# Check whether --with-emos-libraries was given.
if test "${with_emos_libraries+set}" = set; then :
- withval=$with_emos_libraries; LDFLAGS="-L$with_emos_libraries $LDFLAGS"
+ withval=$with_emos_libraries; LDFLAGS="-L$with_emos_libraries $LDFLAGS";EMOS_LIB_PATH=${with_emos_libraries}
fi
diff --git a/configure.ac b/configure.ac
index 6d57c13..560eb50 100644
--- a/configure.ac
+++ b/configure.ac
@@ -137,6 +137,8 @@ then
fi
AC_DEFINE(MAGICS_PYTHON, 1)
AC_SUBST(python)
+
+ AC_CHECK_PROG(SWIG, swig, swig)
fi
#
@@ -647,10 +649,11 @@ AC_ARG_WITH([fortran-libraries],
AC_SUBST(FORTRAN_LIB_PATH)
EMOS_LIB_NAME="emosR64"
+EMOS_LIB_PATH="/usr/local/lib"
AC_ARG_WITH([emos-libraries],
[AS_HELP_STRING([--with-emos-libraries],[Locaction of EMOS library @<:@default is /usr/local/lib@:>@])],
- [LDFLAGS="-L$with_emos_libraries $LDFLAGS"]
+ [LDFLAGS="-L$with_emos_libraries $LDFLAGS";EMOS_LIB_PATH=${with_emos_libraries}]
)
AC_ARG_WITH([emos-libname],
@@ -664,7 +667,7 @@ AC_CHECK_LIB(${EMOS_LIB_NAME},pbopen,echo "Emoslib found.",
AC_DEFINE(MAGICS_BUFR, 1)
MAGICS_3RDPARTY_LIBS="-l${EMOS_LIB_NAME} $MAGICS_3RDPARTY_LIBS"
AC_SUBST(EMOS_LIB_NAME)
-
+AC_SUBST(EMOS_LIB_PATH)
else # MvOBS link failed
bufr="no"
diff --git a/debian/README-testfailures.txt b/debian/README-testfailures.txt
deleted file mode 100644
index 62aa9c4..0000000
--- a/debian/README-testfailures.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-This package fails the test fortran/layout_test in some circumstances.
-
-As it passes in others, I suspect a bad test, and have enabled the package, disabling the tests
-for the meantime.
-
-Details debugged so far:
-(1) ./layout_test works for me (TM)
-(2) "make check" fails on this test.
-(3) setting ulimit -s 8192 make check makes it work, on some platforms.
-
-Running the test under valgrind leads to:
-
-==10896== Process terminating with default action of signal 11 (SIGSEGV)
-==10896== Access not within mapped region at address 0xBD08D00
-==10896== at 0x42162D3: magics::Matrix::operator()(int, int) const (Matrix.h:300)
-==10896== by 0x4219BD1: magics::MatrixHandler<magics::GeoPoint>::operator()(int, int) const (MatrixHandler.h:57)
-
-while Matrix.h has:
-
-
-297 double operator()(int row, int column) const
-298 {
-299 // Here for perfrormance we are trusting the user we do not catch exception
-300 return (*this)[ row * columns_ + column];
-301
-302 }
-
-Core dump:
-
-
-Core was generated by `./layout_test'.
-Program terminated with signal 11, Segmentation fault.
-#0 magics::Matrix::operator() (this=0x77eb0b98, row=511, column=85) at ../../src/common/Matrix.h:300
-300 return (*this)[ row * columns_ + column];
-(gdb)
-(gdb) where
-#0 magics::Matrix::operator() (this=0x77eb0b98, row=511, column=85) at ../../src/common/Matrix.h:300
-#1 0x4020ebd2 in magics::MatrixHandler<magics::GeoPoint>::operator() (this=0x77ee42e0, i=511, j=85) at ../../src/common/MatrixHandler.h:57
-#2 0x4020ebd2 in magics::MatrixHandler<magics::GeoPoint>::operator() (this=0xbfe0d384, i=511, j=85) at ../../src/common/MatrixHandler.h:57
-#3 0x4024f140 in magics::BoxMatrixHandler<magics::GeoPoint>::operator() (this=0xbfe0d240, row=0, column=0) at ../../src/common/MatrixHandler.h:622
-#4 0x4020ebd2 in magics::MatrixHandler<magics::GeoPoint>::operator() (this=0x7864b458, i=0, j=0) at ../../src/common/MatrixHandler.h:57
-#5 0x4021140f in MatrixTreshold<magics::GeoPoint>::operator() (this=0xbfe0d340, row=0, column=0) at ../../src/visualisers/Contour.cc:69
-#6 0x4021cf88 in setMinMax (this=0xbfe0d340) at ../../src/common/MatrixHandler.h:166
-#7 max (this=0xbfe0d340) at ../../src/common/MatrixHandler.h:186
-#8 magics::MatrixHandler<magics::GeoPoint>::max (this=0xbfe0d340) at ../../src/common/MatrixHandler.h:182
-#9 0x4024e4fb in magics::Contour<magics::GeoPoint>::operator() (this=0x85f4e68, data=..., parent=...) at ../../src/visualisers/Contour.cc:124
-#10 0x4022110a in magics::VisualAction<magics::GeoPoint>::visit (this=0x85f3788, drawing=...) at VisualAction.cc:82
-#11 0x402f4f37 in magics::DrawingVisitor::visit (this=0x78961678, object=...) at SceneVisitor.h:116
-#12 0x4021aa14 in magics::VisualAction<magics::GeoPoint>::visit (this=0x85f3788, layer=..., visitors=...) at VisualAction.cc:268
-#13 0x402cd2e5 in magics::ViewNode::visit (this=0x85f3b80, tree=...) at ViewNode.cc:263
-#14 0x402c9312 in dispatch<magics::SceneLayer> (visitor=..., this=0x85f37c0) at BasicSceneObject.h:194
-#15 magics::FortranSceneNode::visit (this=0x85f37c0, tree=...) at SceneNode.cc:130
-#16 0x402c806e in dispatch<magics::Layout> (visitor=..., this=0x85ea528) at BasicSceneObject.h:194
-#17 visit (tree=..., this=0x85ea528) at BasicSceneObject.h:256
-#18 magics::RootScenePage::visit (this=0x85ea528, tree=...) at RootSceneNode.h:61
-#19 0x402c5c36 in dispatch<magics::Layout> (visitor=..., this=0x85eb220) at BasicSceneObject.h:194
-#20 magics::RootSceneNode::execute (this=0x85eb220) at RootSceneNode.cc:255
-#21 0x402000e9 in magics::FortranMagics::pclose (this=0x85e8728) at FortranMagics.cc:150
-#22 0x4035b994 in pclose_ () at MagicsCalls.cc:714
-#23 0x080491f7 in layout_test () at layout_test.f:96
-#24 main (argc=1, argv=0xbfe0ed4d "./layout_test") at layout_test.f:99
-#25 0x40ac6e46 in __libc_start_main (main=0x8048e90 <main>, argc=1, ubp_av=0xbfe0d794, init=0x804aba0 <__libc_csu_init>, fini=0x804ab90 <__libc_csu_fini>,
- rtld_fini=0x4000e310, stack_end=0xbfe0d78c) at libc-start.c:228
-#26 0x08049261 in _start ()
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index 345beb2..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,247 +0,0 @@
-magics++ (2.18.7-2) unstable; urgency=low
-
- * libproj-dev is now a requirement, not optional. Include it.
- Closes: #695963.
- * Enable hardening.
- * Don't ship empty dir /usr/share/magics in -dev package.
- * -data package is now M-A: foreign to satisfy m-a dependencies.
-
- -- Alastair McKinstry <mckinstry at debian.org> Tue, 18 Dec 2012 11:54:23 +0000
-
-magics++ (2.18.7-1) unstable; urgency=low
-
- * New upstream release.
- * Now at Standards-Version: 3.9.4
- * Patch from Michael Terry for Ubuntu to delete bogus symlinks when
- building.
- * Remove --with-terralib as no longer understood by configure;
- MAGPLUS_HOME needs to be set when configure run
- * python-magics++ now depends on python-simplejson
-
- -- Alastair McKinstry <mckinstry at debian.org> Mon, 10 Dec 2012 06:22:47 +0000
-
-magics++ (2.14.11-4) unstable; urgency=low
-
- * Rebuild to fix gcc-4.7 issue. Closes: #646734
-
- -- Alastair McKinstry <mckinstry at debian.org> Thu, 14 Jun 2012 12:32:31 +0100
-
-magics++ (2.14.11-3) unstable; urgency=low
-
- * Don't forget libdir. read it from pkg-config too. Closes: #674472.
-
- -- Alastair McKinstry <mckinstry at debian.org> Fri, 08 Jun 2012 13:31:18 +0100
-
-magics++ (2.14.11-2) unstable; urgency=low
-
- * Make magics-config use pkg-config to retrieve arch-dependent variables,
- for multi-arch support. Closes: #674472.
-
- -- Alastair McKinstry <mckinstry at debian.org> Thu, 07 Jun 2012 16:13:01 +0100
-
-magics++ (2.14.11-1) unstable; urgency=low
-
- * Standards-Version: 3.9.3. No changes required.
- * New upstream release.
- * Fixes for gcc-4.7. Closes: #673885.
- * Now need python-instant for numpy.i, which is no longer shipped in the
- swig/ directory.
- * Now use xz compression.
- * Make "./debian rules clean" actually work.
-
- -- Alastair McKinstry <mckinstry at debian.org> Tue, 22 May 2012 17:42:33 +0100
-
-magics++ (2.14.5-2) unstable; urgency=low
-
- * boostlib > 1.32 needs libboost-dev dependency to build.
- Closes: #653298.
-
- -- Alastair McKinstry <mckinstry at debian.org> Sun, 01 Jan 2012 13:05:35 +0000
-
-magics++ (2.14.5-1) unstable; urgency=low
-
- * New upstream release.
- * Fix typo in homepage description. Closes: #571529.
- * Fix FTBFS in as-needed patch which no longer applied correctly.
- Closes: #650453.
- * Remove patches to Makefile.in, now its autogenerated. Just patch
- Makefile.am.
- * Move python-magics++ into Section: python from utils
-
- -- Alastair McKinstry <mckinstry at debian.org> Wed, 21 Dec 2011 15:03:16 +0000
-
-magics++ (2.12.9-5) unstable; urgency=low
-
- * Recommends: pkg-config in -dev package.
- * Rebuild against new libgrib-api-dev.
- * Change section: for python-magics to utils, to match overrides.
-
- -- Alastair McKinstry <mckinstry at debian.org> Thu, 20 Oct 2011 10:40:35 +0100
-
-magics++ (2.12.9-4) unstable; urgency=low
-
- * Add "-lz" to the LIBS to ensure its linked in correctly, adding zlib1-dev
- to the B-D to ensure it is present.
- * Move libMagPlusSingle.a into /usr/lib/${DEB_HOST_MULTIARCH}/ dir
- Closes: #642446.
-
- -- Alastair McKinstry <mckinstry at debian.org> Sat, 24 Sep 2011 15:05:00 +0100
-
-magics++ (2.12.9-3) unstable; urgency=low
-
- * Add as-needed.patch to ltmain.sh to fix -Wl,--as-needed issues
- * Add LIBS=" -lX11 -lpng12" to configure line to link directly libraries that
- are needed.
- * Disable test: layout_test fails on some platforms, but only within the
- Make check context; debugging in progress, but fix FTBFS for python
- transition. Details in README-testfailures.txt in debian/
-
- -- Alastair McKinstry <mckinstry at debian.org> Tue, 13 Sep 2011 13:45:47 +0100
-
-magics++ (2.12.9-2) unstable; urgency=low
-
- * Allow building against libhdf5-dev, not just libhdf5-serial-dev.
- * Add DEP-3 tags to patches
- * Loop over and include support for all supported python versions.
-
- -- Alastair McKinstry <mckinstry at debian.org> Sat, 10 Sep 2011 11:18:22 +0100
-
-magics++ (2.12.9-1) unstable; urgency=low
-
- * New upstream release.
- * Test: layout_test breaks unless ulimit -s 8192 is set beforehand
- in the debian/rules. Why?
-
- -- Alastair McKinstry <mckinstry at debian.org> Fri, 08 Jul 2011 17:16:45 +0100
-
-magics++ (2.12.8.dfsg-1) unstable; urgency=low
-
- * New upstream release.
- * Move build system from cdbs to debhelper 7
- * Move from python-support to dhpython2
- * Depend on libopenjpeg-dev, for grib-api functionality.
- * Move to Standards-Version: 3.9.2
- * Build against libterralib3-dev, was libterralib1-dev.
-
- -- Alastair McKinstry <mckinstry at debian.org> Sat, 18 Jun 2011 17:27:27 +0100
-
-magics++ (2.10.0.dfsg-7) unstable; urgency=low
-
- * Depend on ${python:Depends}. Closes: #609197.
-
- -- Alastair McKinstry <mckinstry at debian.org> Tue, 11 Jan 2011 21:01:37 +0000
-
-magics++ (2.10.0.dfsg-6) unstable; urgency=low
-
- * FTBFS with python2.7. Patch from Sameer Morar. Closes: #608788.
-
- -- Alastair McKinstry <mckinstry at debian.org> Tue, 04 Jan 2011 11:25:40 +0000
-
-magics++ (2.10.0.dfsg-5.1) unstable; urgency=low
-
- * Non-maintainer upload.
- * debian/patches
- - (cve-2010-3393--bug598418): Refresh patch. Restore deleted line
- 'python="@MAGICS_PYTHON@"' and adjust $ldlib.
- (important, security, reopened; Closes: #598418).
-
- -- Jari Aalto <jari.aalto at cante.net> Sun, 24 Oct 2010 19:20:57 +0300
-
-magics++ (2.10.0.dfsg-5) unstable; urgency=low
-
- * CVE-2010-3393: Fix LD_LIBRARY_PATH edit. Closes: #598418.
-
- -- Alastair McKinstry <mckinstry at debian.org> Wed, 29 Sep 2010 12:43:09 +0100
-
-magics++ (2.10.0.dfsg-4) unstable; urgency=low
-
- * Explicitly add dh_pysupport call to triger update-python-modules in
- postinst, prerm files. Also, move *.so files in python-magics++.install to
- /usr/lib/pymodules so that they are found and acted upon. Closes: #592422.
- * Added python-magics++ to Section: python as recommended by lintian.
- * Added clean rule to delete symlinks, so double-builds succeed.
-
- -- Alastair McKinstry <mckinstry at debian.org> Wed, 11 Aug 2010 10:07:21 +0100
-
-magics++ (2.10.0.dfsg-3) unstable; urgency=low
-
- * Build-Depend on python-numpy as well. Closes: #590951.
-
- -- Alastair McKinstry <mckinstry at debian.org> Fri, 30 Jul 2010 17:40:23 +0100
-
-magics++ (2.10.0.dfsg-2) unstable; urgency=low
-
- * Add python support package python-magics++:
- * Add build-depends on python-all-dev, swig, python-support
- * Temporararily disable tests, as python tests have paths trouble.
- * Remove rpath with chrpath
- * Standrds-Version: 3.9.1
-
- -- Alastair McKinstry <mckinstry at debian.org> Wed, 28 Jul 2010 01:02:07 +0100
-
-magics++ (2.10.0.dfsg-1) unstable; urgency=low
-
- * New Upstream release
- - DFSG version has terralib and pdfs removed.
- * Move to Standards-Version: 3.9.0
-
- -- Alastair McKinstry <mckinstry at debian.org> Wed, 21 Jul 2010 08:19:15 +0100
-
-magics++ (2.8.0.dfsg-5) unstable; urgency=low
-
- * Typo in homepage URL. Closes: #571529.
- * Move to Standards-Version: 3.8.4, no changes required.
-
- -- Alastair McKinstry <mckinstry at debian.org> Fri, 26 Feb 2010 11:43:35 +0000
-
-magics++ (2.8.0.dfsg-4) unstable; urgency=low
-
- * Build-Dep: libxml-parser-perl and python for tests.
-
- -- Alastair McKinstry <mckinstry at debian.org> Thu, 07 Jan 2010 12:46:27 +0000
-
-magics++ (2.8.0.dfsg-3) unstable; urgency=low
-
- * Add Build-Depends: libtool.
- * Set MAGPLUS_HOME in debian/rules so that tests run, and add gfortran
- dependency for fortran tests, Add Build-Dep on ttf-dejavu-core for testing.
- * Disable printer_test as it requires a data file thats missing.
-
- -- Alastair McKinstry <mckinstry at debian.org> Wed, 06 Jan 2010 21:30:31 +0000
-
-magics++ (2.8.0.dfsg-2) unstable; urgency=low
-
- * Patch: enable static libs in configure.ac. Closes: #562120.
- * Add dynamic_linking.patch to link libs to libMagPlus directly rather
- than just magmlx, and remove libs via --as-needed.
-
- -- Alastair McKinstry <mckinstry at debian.org> Wed, 23 Dec 2009 09:33:38 +0000
-
-magics++ (2.8.0.dfsg-1) unstable; urgency=low
-
- * New upstream release.
- * Add libjasper dependency for grib-api. Add Closes: #562040.
- * Added libcairo2-dev, libpango1.0-dev build dependencies now needed.
- * Removed dependency on quilt ; now source format 3.0, so dpkg handles
- this.
- * EpsBufr.patch now in upstream; removed
-
- -- Alastair McKinstry <mckinstry at debian.org> Tue, 22 Dec 2009 11:26:27 +0000
-
-magics++ (2.6.4~dfsg-1) unstable; urgency=low
-
- * Initial Debian release. Closes: #522984.
- * Removed pdfs, making dfsg-free version.
- * Removed terralib from sources; now use external terralib library, for
- licensing reasons.
- * Change version number to ~ before upload, so non-dfsg can go away if
- PDF sources issue solved.
- * Move to Standards-Version: 3.8.3
- * DH_COMPAT is now 7.
- * Moved shared data to libmagics++-data.
- * Build against libgrib-api, libemos-dev now in unstable.
- * libmagics++ depends on ttf-dejavu-* fonts rather than includes them;
- * Build-depend on libhdf5-serial-dev rather than virtual libhdf5-dev
- * Removed ttf fonts.
-
- -- Alastair McKinstry <mckinstry at debian.org> Fri, 06 Nov 2009 19:54:22 +0000
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index ec63514..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/debian/control b/debian/control
deleted file mode 100644
index 7fae0e2..0000000
--- a/debian/control
+++ /dev/null
@@ -1,87 +0,0 @@
-Source: magics++
-Section: utils
-Priority: optional
-Maintainer: Alastair McKinstry <mckinstry at debian.org>
-Build-Depends: debhelper (>= 8.1.3~) , dh-buildinfo, libhdf5-serial-dev | libhdf5-dev, libnetcdf-dev, libgl1-mesa-dev, libgd2-xpm-dev, libemos-dev, libgrib-api-dev, libterralib-dev, libjasper-dev, libcairo2-dev, libpango1.0-dev, autoconf, automake, libtool, gfortran, ttf-dejavu-core, libxml-parser-perl, python-all-dev (>= 2.6.6-3) , swig, chrpath, python-numpy, libopenjpeg-dev, ghostscript, zlib1g-dev, dh-autoreconf (>= 4~), libboost-dev, python-instant, python3-all-dev, libproj-dev
-Standards-Version: 3.9.3
-Homepage: http://www.ecmwf.int/products/data/software/magics++.html
-X-Python-Version: >= 2.6
-
-Package: libmagplus3
-Section: libs
-Architecture: any
-Multi-Arch: same
-Pre-Depends: ${misc:Pre-Depends}
-Depends: libmagics++-data,${misc:Depends}, ${shlibs:Depends}, ttf-dejavu-core, ttf-dejavu-extra, ghostscript
-Description: ECMWF meteorological plotting software library
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- The library supports the plotting of contours, wind fields, observations,
- satellite images, symbols, text, axis and graphs (including boxplots).
- .
- Data fields to be plotted may be presented in various formats,
- for instance GRIB 1 and 2 code data, Gaussian grid, regularly spaced grid
- and fitted data. Input data can also be in BUFR and NetCDF format
- or retrieved from an ODB database.
- .
- The produced meteorological plots can be saved in various formats,
- such as PostScript, EPS, PDF, GIF, PNG, SVG and KML.
-
-Package: libmagics++-dev
-Section: libdevel
-Architecture: any
-Multi-Arch: same
-Depends: libmagplus3 ( = ${binary:Version} ), ${misc:Depends}, ${python:Depends}
-Recommends: pkg-config
-Description: Development files for ECMWF plotting software MAGICS++
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- This package includes the header files and static libraries needed to build
- against libmagics++.
-
-Package: magics++
-Architecture: any
-Multi-Arch: foreign
-Depends: libmagplus3 ( = ${binary:Version} ), ${misc:Depends}, ${shlibs:Depends}, ${python:Depends}
-Description: Executables for the magics++ library
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- This package contains the MagcML binary that may be used with magics++.
-
-Package: python-magics++
-Section: python
-Architecture: any
-Depends: libmagplus3 ( = ${binary:Version} ), ${misc:Depends}, ${shlibs:Depends}, ${python:Depends}, python, python-simplejson
-Description: python support for Magics++
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- This package provides python support for the magics++ library.
-
-Package: libmagics++-data
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Description: Data files needed for magics++ library
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- This package contains data expected by the magics++ library.
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index 58ad2e4..0000000
--- a/debian/copyright
+++ /dev/null
@@ -1,48 +0,0 @@
-This package was debianized by Alastair McKinstry <mckinstry at debian.org>, on
-Mon, 6 Apr 2009 16:22:04 +0100. It was downloaded from
-http://www.ecmwf.int/products/data/software/magics++.html.
-
-The Debian packaging is Copyright 2009, Alastair McKinstry <mckinstry at debian.org>,
-is licensed under the terms of the GNU GPL version 3.
-
-Magics++
-========
-
-Copyright 2007,2008 ECMWF
-
-This product mainly includes software developed at "The European Centre for
-Medium-Range Weather Forecasts" (ECMWF - http://www.ecmwf.int ).
-
-Licensed under the Apache License, version 2.0
-The text of the license can be found in /usr/share/common-licenses/Apache-2.0
-
-OpenGL font rendering - OGLFT
-=============================
-
-(src/driver/OpenGLDriverText.cc/.h)
-
- * OGLFT: A library for drawing text with OpenGL using the FreeType library
- * Copyright (C) 2002 lignum Computing, Inc. <oglft at lignumcomputing.com>
- * $Id: OGLFT.cpp,v 1.11 2003/10/01 14:21:18 allen Exp $
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-G S H H S
-=========
-Global Self-consistant Hierarchical High-resolution Shorelines.
-This is shipped with magics++, and is also covered by the Gnu General Public License.
-The text of the license can be found in /usr/share/common-licenses/GPL-2.0.
-
-The original GSHHS can be retrieved from: http://www.ngdc.noaa.gov/mgg/shorelines/gshhs.html
diff --git a/debian/libmagics++-data.install b/debian/libmagics++-data.install
deleted file mode 100644
index 1d24459..0000000
--- a/debian/libmagics++-data.install
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/share/magics/* usr/share/magics
diff --git a/debian/libmagics++-dev.install b/debian/libmagics++-dev.install
deleted file mode 100644
index b9b193c..0000000
--- a/debian/libmagics++-dev.install
+++ /dev/null
@@ -1,10 +0,0 @@
-debian/tmp/usr/lib/*/libMagPlusSingle.a
-debian/tmp/usr/lib/*/libMagPlusDouble.a
-debian/tmp/usr/lib/*/libMagPlus.a
-debian/tmp/usr/include/magics usr/include
-debian/tmp/usr/bin/magics-config usr/bin
-debian/tmp/usr/lib/*/pkgconfig/magics.pc
-debian/tmp/usr/share/aclocal/magics.m4 usr/share/aclocal
-debian/tmp/usr/bin/magicsCompatibilityChecker usr/bin
-
-
diff --git a/debian/libmagplus3.install b/debian/libmagplus3.install
deleted file mode 100644
index a9811bf..0000000
--- a/debian/libmagplus3.install
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/lib/*/libMagPlus.so.3.0.0
diff --git a/debian/magics++.install b/debian/magics++.install
deleted file mode 100644
index 24ecec0..0000000
--- a/debian/magics++.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/magjson
-usr/bin/magmlx
-usr/bin/mapgen_clip
diff --git a/debian/patches/cve-2010-3393.patch b/debian/patches/cve-2010-3393.patch
deleted file mode 100644
index 9d0465a..0000000
--- a/debian/patches/cve-2010-3393.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 4d974cdaf4547520d6ce335f88f5f67712e97766 Mon Sep 17 00:00:00 2001
-From: Jari Aalto <jari.aalto at cante.net>
-Date: Sat, 16 Oct 2010 19:52:12 +0300
-Subject: [PATCH] CVE-2010-3393 insecure library loading Bug#598418
-Organization: Private
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jari Aalto <jari.aalto at cante.net>
----
-Index: magics++-2.18.1/magics-config.in
-===================================================================
---- magics++-2.18.1.orig/magics-config.in 2012-10-15 12:23:32.000000000 +0100
-+++ magics++-2.18.1/magics-config.in 2012-10-31 15:38:22.000000000 +0000
-@@ -76,6 +76,7 @@
- fi
- fi
-
-+ldlib="${prefix}/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
- if test $# -eq 0; then
- usage 1 1>&2
- fi
-@@ -132,7 +133,7 @@
- echo ""
- echo " export MAGPLUS_HOME=${prefix}"
- echo " export PATH=${prefix}/bin:\$PATH"
-- echo " export LD_LIBRARY_PATH=${libdir}:\$LD_LIBRARY_PATH"
-+ echo " export LD_LIBRARY_PATH=\"$ldlib\""
- echo " export PYTHONPATH=\"${py_dir}:\${PYTHONPATH:-/usr/lib}\""
- echo ""
- echo " You might want add these lines to your login scripts (.profile, .kshrc or .bashrc)."
diff --git a/debian/patches/dynamic_link.patch b/debian/patches/dynamic_link.patch
deleted file mode 100644
index eb7d270..0000000
--- a/debian/patches/dynamic_link.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: Link libMagPlus.so.3.0.0 against extra libraries that are provided
- in dynamic form by Debian.
-Author: Alastair McKinstry <mckinstry at debian.org>
-Last-Updated: 2010-07-23
-Forwarded: no
-
-Index: magics++-2.18.1/configure.ac
-===================================================================
---- magics++-2.18.1.orig/configure.ac 2012-10-15 12:23:25.000000000 +0100
-+++ magics++-2.18.1/configure.ac 2012-10-31 15:38:08.000000000 +0000
-@@ -724,7 +724,9 @@
- fi
- AC_SUBST(proj4)
-
--
-+# Add dynamic libs needed by Debian
-+LIBS="$CAIRO_LIBS $LIBS -lemosR64 -lgrib_api -lterralib -lstdc++ -lm $NETCDF_LIBS"
-+LDFLAGS="$CAIRO_LDFLAGS $LDFLAGS -Wl,--as-needed"
-
- ############################################
- #
diff --git a/debian/patches/enable_static.patch b/debian/patches/enable_static.patch
deleted file mode 100644
index 6b1325d..0000000
--- a/debian/patches/enable_static.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Enable building static libs
-Last-Updated: 2011-06-16
-Forwarded: not-needed
-
-Index: magics++-2.18.1/configure.ac
-===================================================================
---- magics++-2.18.1.orig/configure.ac 2012-10-31 15:38:30.000000000 +0000
-+++ magics++-2.18.1/configure.ac 2012-10-31 15:38:38.000000000 +0000
-@@ -55,7 +55,7 @@
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
-
--AC_DISABLE_STATIC # TEMPORARY !!!!
-+#AC_DISABLE_STATIC # TEMPORARY !!!!
- AC_AIX
- LT_INIT
- #AC_PROG_CC([xlc_r icc aCC gcc cc CC])
diff --git a/debian/patches/gcc-4.7.patch b/debian/patches/gcc-4.7.patch
deleted file mode 100644
index e76b7a9..0000000
--- a/debian/patches/gcc-4.7.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Fixes needed for compilation with gcc-4.7
-Forwarded: no
-Last-Updaged: 2012-05-22
-Bug-Origin: http://bugs.debian.org/673885.
-
-Index: magics++-2.18.1/src/visualisers/IsoPlot.cc
-===================================================================
---- magics++-2.18.1.orig/src/visualisers/IsoPlot.cc 2012-10-15 12:23:37.000000000 +0100
-+++ magics++-2.18.1/src/visualisers/IsoPlot.cc 2012-10-31 15:46:02.000000000 +0000
-@@ -456,36 +456,36 @@
- RangeType def = cell->range();
-
- if ( def != multipleRange ) {
-- push_back(cell);
-+ this->push_back(cell);
- }
- else {
- delete cell;
-- push_back(new CellBox(parent_, row1_, row, column1_, column));
-- push_back(new CellBox(parent_, row+1, row2_, column1_, column));
-+ this->push_back(new CellBox(parent_, row1_, row, column1_, column));
-+ this->push_back(new CellBox(parent_, row+1, row2_, column1_, column));
- }
- cell = new CellBox(parent_, row1_, row2_, column+1, column2_);
- def = cell->range();
-
- if ( def != multipleRange ) {
-- push_back(cell);
-+ this->push_back(cell);
- }
- else {
- delete cell;
-- push_back(new CellBox(parent_, row1_, row, column+1, column2_));
-- push_back(new CellBox(parent_, row+1, row2_, column+1, column2_));
-+ this->push_back(new CellBox(parent_, row1_, row, column+1, column2_));
-+ this->push_back(new CellBox(parent_, row+1, row2_, column+1, column2_));
- }
- return;
- }
-
- if (row2_- row1_ > 0) {
-- push_back(new CellBox(parent_, row1_, row, column1_, column2_));
-- push_back(new CellBox(parent_, row+1, row2_, column1_, column2_));
-+ this->push_back(new CellBox(parent_, row1_, row, column1_, column2_));
-+ this->push_back(new CellBox(parent_, row+1, row2_, column1_, column2_));
- return;
- }
-
- if (column2_- column1_ > 0) {
-- push_back(new CellBox(parent_, row1_, row2_, column1_, column));
-- push_back(new CellBox(parent_, row1_, row2_, column+1, column2_));
-+ this->push_back(new CellBox(parent_, row1_, row2_, column1_, column));
-+ this->push_back(new CellBox(parent_, row1_, row2_, column+1, column2_));
- return;
- }
- }
-@@ -1302,12 +1302,12 @@
- */
- void IsoPlot::operator()(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
- {
-- prepare(data);
-+ this->prepare(data);
- if ( legend_only_ ) return;
-
- {
- Timer timer("contouring", "Time spent in contouring");
-- isoline(data, parent);
-+ this->isoline(data, parent);
- }
-
- #ifdef ISOPLOT_DEBUG
-@@ -1352,7 +1352,7 @@
- void NoIsoPlot::operator()(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
- {
- // Create the isolines...
-- if ( !prepare(data) ) {
-+ if ( !this->prepare(data) ) {
- if ( legend_only_ ) return;
- (*shading_)(data, parent);
- // do not send the isolines...
-Index: magics++-2.18.1/src/visualisers/Filter.cc
-===================================================================
---- magics++-2.18.1.orig/src/visualisers/Filter.cc 2012-10-15 12:23:37.000000000 +0100
-+++ magics++-2.18.1/src/visualisers/Filter.cc 2012-10-31 15:41:45.000000000 +0000
-@@ -202,7 +202,7 @@
- {
- // MagLog::debug() << "Min " << lin+fcr+1 << " " << col+fcc+1 << " " << val << "\n";
- lo = lo+1;
-- push_back(UserPoint(this->matrix_.column(lin+fcr, col+fcc),this->matrix_.row(lin+fcr, col+fcc),val));
-+ this->push_back(UserPoint(this->matrix_.column(lin+fcr, col+fcc),this->matrix_.row(lin+fcr, col+fcc),val));
- this->back().low(true);
- this->back().high(false);
- }
-@@ -233,7 +233,7 @@
- {
- // MagLog::debug() << "Max " << lin+fcr+1 << " " << col+fcc+1 << " " << val << "\n";
- hi = hi+1;
-- push_back(UserPoint(this->matrix_.column(lin+fcr, col+fcc),this->matrix_.row(lin+fcr, col+fcc),val));
-+ this->push_back(UserPoint(this->matrix_.column(lin+fcr, col+fcc),this->matrix_.row(lin+fcr, col+fcc),val));
- this->back().high(true);
- this->back().low(false);
- }
-Index: magics++-2.18.1/src/visualisers/Bar.cc
-===================================================================
---- magics++-2.18.1.orig/src/visualisers/Bar.cc 2012-10-15 12:23:37.000000000 +0100
-+++ magics++-2.18.1/src/visualisers/Bar.cc 2012-10-31 15:44:17.000000000 +0000
-@@ -98,13 +98,13 @@
-
- vector<string>::iterator annotation = annotation_.begin();
-
-- for (CustomisedPointsList::const_iterator point = points.begin(); point != points.end(); ++point)
-+ for (CustomisedPointsList::const_iterator pt = points.begin(); pt != points.end(); ++pt)
- {
-
-- x = (**point)["x"];
-- next = ((point+1) != points.end() ) ? (**(point+1))["x"] : x;
-- bottom = (min_value_ == INT_MAX) ? (**point)["y_lower"]: min_value_;
-- top = (**point)["y_upper"];
-+ x = (**pt)["x"];
-+ next = ((pt+1) != points.end() ) ? (**(pt+1))["x"] : x;
-+ bottom = (min_value_ == INT_MAX) ? (**pt)["y_lower"]: min_value_;
-+ top = (**pt)["y_upper"];
-
- map<string, Renderer>::iterator renderer = renderers_.find(lowerCase(bar_style_) );
-
-Index: magics++-2.18.1/src/decoders/MapGenDecoder.cc
-===================================================================
---- magics++-2.18.1.orig/src/decoders/MapGenDecoder.cc 2012-10-15 12:23:36.000000000 +0100
-+++ magics++-2.18.1/src/decoders/MapGenDecoder.cc 2012-10-31 15:47:05.000000000 +0000
-@@ -73,11 +73,11 @@
- continue;
- if ( strncmp(line,"# -b", 4) == 0 )
- if ( record_ < 0 ) {
-- if ( this->empty() ) push_back(new PointsList());
-+ if ( this->empty() ) this->push_back(new PointsList());
- this->back()->push_back(new UserPoint(0,0,0, true));
- }
- else
-- push_back(new PointsList());
-+ this->push_back(new PointsList());
- else {
- sscanf(line, "%f %f", &lon, &lat);
- this->back()->push_back(new UserPoint(lon, lat, i++));
diff --git a/debian/patches/magics-config.patch b/debian/patches/magics-config.patch
deleted file mode 100644
index 257863e..0000000
--- a/debian/patches/magics-config.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-Description: Make magics-config inherit from pkg-config, for Multi-arch support.
-Author: Alastair McKinstry <mckinstry at debian.org>
-Bug-Origin: http://bugs.debian.org/674472
-Last-Updated: 2012-06-08
-Forwarded: no
-
-Index: magics++-2.18.1/magics-config.in
-===================================================================
---- magics++-2.18.1.orig/magics-config.in 2012-10-31 15:38:22.000000000 +0000
-+++ magics++-2.18.1/magics-config.in 2012-10-31 15:47:28.000000000 +0000
-@@ -2,17 +2,21 @@
-
- prefix=@prefix@
- exec_prefix=@exec_prefix@
--libdir=@libdir@
-+libdir=`pkg-config --variable=libdir magics`
- includedir=@includedir@
--F77="@F77@"
--CC="@CC@"
--CXX="@CXX@"
--CXXFLAGS="@CXXFLAGS@"
--AXX="@AXX@"
--SHLIB_EXT="@SHLIB_EXT@"
--FFLAGS="@FFLAGS@"
--CPPLIBS="@CPPLIBS@"
--py_dir="@PYTHON_SITE_PKG@"
-+F77=`pkg-config --variable=F77 magics`
-+CC=`pkg-config --variable=CC magics`
-+CXX=`pkg-config --variable=CXX magics`
-+CXXFLAGS=`pkg-config --variable=CXXFLAGS magics`
-+AXX=`pkg-config --variable=AXX magics`
-+SHLIB_EXT=`pkg-config --variable=SHLIB_EXT magics`
-+FFLAGS=`pkg-config --variable=FFLAGS magics`
-+CPPLIBS=`pkg-config --variable=CPPLIBS magics`
-+LDFLAGS=`pkg-config --variable=LDFLAGS magics`
-+FLIBS=`pkg-config --variable=FLIBS magics`
-+MAGICS_3RDPARTY_LIBS=`pkg-config --variable=MAGICS_3RDPARTY_LIBS magics`
-+MAGICS_3RDPARTY_INCLUDE=`pkg-config --variable=MAGICS_3RDPARTY_INCLUDE magics`
-+py_dir=`pkg-config --variable=py_dir magics`
- suffix=""
-
- #
-@@ -230,7 +234,7 @@
- if test "$includedir" != "/usr/include" ; then
- my_cxxflags="-I${includedir}"
- fi
-- echo "${AXX} ${my_cxxflags} @MAGICS_3RDPARTY_INCLUDE@"
-+ echo "${AXX} ${my_cxxflags} ${MAGICS_3RDPARTY_INCLUDE}"
- fi
-
- if test "$echo_libs" = "yes"; then
-@@ -240,7 +244,7 @@
- my_libs="${libdir}/libMagPlus.a"
- fi
-
-- my_libs="${my_libs} @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ @FLIBS@"
-+ my_libs="${my_libs} ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} ${FLIBS}"
-
- if test "$echo_clibs" = "yes"; then
- my_libs="${my_libs} $CPPLIBS"
-@@ -258,7 +262,7 @@
-
- if test "$echo_static" = "yes"; then
- if test -f ${libdir}/libMagPlus.a ; then
-- static="${precision} ${libdir}/libMagPlus.a -L${libdir} @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS"
-+ static="${precision} ${libdir}/libMagPlus.a -L${libdir} ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS"
- echo ${static}
- else
- echo "magics-config: NO STATIC LIBRARY available"
-@@ -267,7 +271,7 @@
-
- if test "$echo_shared" = "yes"; then
- if test -f ${libdir}/libMagPlus.${SHLIB_EXT} ; then
-- shared="${precision} -L${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS"
-+ shared="${precision} -L${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS"
- echo ${shared}
- else
- echo "magics-config: NO SHARED LIBRARY"
-@@ -275,7 +279,7 @@
- fi
-
- if test "$echo_flibs" = "yes"; then
-- echo @FLIBS@
-+ echo ${FLIBS}
- fi
-
- if test "$compile" = "yes"; then
-@@ -289,8 +293,8 @@
- if test ${name} != ${f77_file} ; then
- out="-o $name " ### avoid overriding source file
- fi
-- echo "$F77 ${out}$f77_file ${FFLAGS} ${precision} -L${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS"
-- $F77 ${out}$f77_file ${FFLAGS} ${precision} -L${libdir} -Wl,-rpath,${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS
-+ echo "$F77 ${out}$f77_file ${FFLAGS} ${precision} -L${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS"
-+ $F77 ${out}$f77_file ${FFLAGS} ${precision} -L${libdir} -Wl,-rpath,${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS
- fi
-
- if test "$compileC" = "yes"; then
-@@ -304,6 +308,6 @@
- if test ${name} != ${c_file} ; then
- out="-o $name " ### avoid overriding source file
- fi
-- echo "$CC ${out}$c_file ${CFLAGS} -L${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS @FLIBS@"
-- $CC ${out}$c_file ${CFLAGS} -I${includedir} -L${libdir} -Wl,-rpath,${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS @FLIBS@
-+ echo "$CC ${out}$c_file ${CFLAGS} -L${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS ${FLIBS}"
-+ $CC ${out}$c_file ${CFLAGS} -I${includedir} -L${libdir} -Wl,-rpath,${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS ${FLIBS}
- fi
-Index: magics++-2.18.1/src/magics.pc.in
-===================================================================
---- magics++-2.18.1.orig/src/magics.pc.in 2012-10-15 12:23:36.000000000 +0100
-+++ magics++-2.18.1/src/magics.pc.in 2012-10-31 15:47:28.000000000 +0000
-@@ -2,6 +2,19 @@
- exec_prefix=@exec_prefix@
- libdir=@libdir@
- includedir=@includedir@
-+F77="@F77@"
-+CC="@CC@"
-+CXX="@CXX@"
-+CXXFLAGS="@CXXFLAGS@"
-+AXX="@AXX@"
-+SHLIB_EXT="@SHLIB_EXT@"
-+FFLAGS="@FFLAGS@"
-+CPPLIBS="@CPPLIBS@"
-+LDFLAGS="@LDFLAGS@"
-+FLIBS="@FLIBS@"
-+MAGICS_3RDPARTY_LIBS="@MAGICS_3RDPARTY_LIBS@"
-+MAGICS_3RDPARTY_INCLUDE="@MAGICS_3RDPARTY_INCLUDE@"
-+py_dir="@PYTHON_SITE_PKG@"
-
- Name: Magics
- Description: Multi-platform meteorological graphics library
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index cc66b4c..0000000
--- a/debian/patches/series
+++ /dev/null
@@ -1,6 +0,0 @@
-dynamic_link.patch
-cve-2010-3393.patch
-terralib.patch
-enable_static.patch
-gcc-4.7.patch
-magics-config.patch
diff --git a/debian/patches/terralib.patch b/debian/patches/terralib.patch
deleted file mode 100644
index 1b1551f..0000000
--- a/debian/patches/terralib.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Add Debians libterralib, rather than built-in version
-Last-Updated: 2011-07-08
-Forwarded: not-needed
-
-Index: magics++-2.18.1/configure.ac
-===================================================================
---- magics++-2.18.1.orig/configure.ac 2012-10-31 15:38:08.000000000 +0000
-+++ magics++-2.18.1/configure.ac 2012-10-31 15:38:30.000000000 +0000
-@@ -990,7 +990,7 @@
-
-
- MAGICS_3RDPARTY_INCLUDE="$CPPFLAGS"
--MAGICS_3RDPARTY_LIBS="$LIBS $GRIBAPI_LIBS $MAGICS_3RDPARTY_LIBS $NETCDF_LIBS"
-+MAGICS_3RDPARTY_LIBS="$LIBS $GRIBAPI_LIBS $MAGICS_3RDPARTY_LIBS $NETCDF_LIBS -lterralib"
- LIBS="$LIBS $NETCDF_LIBS"
-
- AC_SUBST(MAGICS_3RDPARTY_INCLUDE)
-@@ -1031,7 +1031,6 @@
- src/drivers/Makefile
- src/oda/Makefile
- src/visualisers/Makefile
-- src/terralib/Makefile
- src/MvObs/Makefile
- src/libTable/Makefile
- src/libMagWrapper/Makefile
-Index: magics++-2.18.1/src/visualisers/ImagePlotting.cc
-===================================================================
---- magics++-2.18.1.orig/src/visualisers/ImagePlotting.cc 2012-10-15 12:23:37.000000000 +0100
-+++ magics++-2.18.1/src/visualisers/ImagePlotting.cc 2012-10-31 15:38:30.000000000 +0000
-@@ -124,7 +124,8 @@
- parin.nlines_ = rdin.getRows();
- parin.resx_ = abs(rdin.getXResolution());
- parin.resy_ = abs(rdin.getYResolution());
-- parin.decName("MEM");
-+ //parin.decName("MEM");
-+ parin.decoderIdentifier_ = "MEM";
-
- parin.projection(&rdin.getProjection());
- UserPoint ll = rdin.getLowerLeftCorner();
-@@ -136,7 +137,8 @@
-
- // Copy input image to the raster structure
- TeRaster rastin(parin);
-- rastin.params().decName("MEM");
-+ // rastin.params().decName("MEM");
-+ rastin.params().decoderIdentifier_ = "MEM";
- bool ok = rastin.init(parin);
- for (i = 0; i < parin.nlines_; i++)
- for (j = 0; j < parin.ncols_; j++)
-@@ -164,7 +166,8 @@
- double res = (maxX-minX)/double(nnx-1);
-
- parout.boundingBoxResolution(minX,minY,maxX,maxY,res,res, TeBox::TeLOWERLEFT);
-- parout.decName("MEM");
-+ // parout.decName("MEM");
-+ parout.decoderIdentifier_ = "MEM";
- parout.nBands(1);
- parout.setDummy(0);
- parout.setDataType(TeUNSIGNEDSHORT); // see note 2 above
-@@ -172,7 +175,8 @@
-
- // Initialise raster structure
- TeRaster rastout(parout);
-- rastout.params().decName("MEM");
-+ // rastout.params().decName("MEM");
-+ rastout.params().decoderIdentifier_ = "MEM";
- ok = rastout.init(parout);
-
- // Reproject input data
-@@ -230,10 +234,12 @@
- UserPoint ur = rdin.getUpperRightCorner();
- parin.boundingBoxResolution(ll.x(),ll.y(),ur.x(),ur.y(), parin.resx_, parin.resy_);
- parin.nBands(1);
-- parin.setDataType(TeUNSIGNEDSHORT);
-+ // parin.setDataType(TeUNSIGNEDSHORT);
- //parin.compressionType_ = TeNoCompression;
-+ parin.dataType_[0] = TeUNSIGNEDSHORT;
- parin.setCompressionMode(TeRasterParams::TeNoCompression);
-- parin.decName("MEM");
-+ // parin.decName("MEM");
-+ parin.decoderIdentifier_ = "MEM";
-
- // Copy input image to the raster structure
- TeRaster rastin(parin);
-@@ -247,7 +253,8 @@
- TeRasterParams parout;
- TeProjection& projout = const_cast<Transformation * >(&transformation)->getProjection();
- parout.projection(&projout);
-- parout.decName("MEM");
-+ // parout.decName("MEM");
-+ parout.decoderIdentifier_ = "MEM";
-
- double minX = transformation.getMinPCX();
- double maxX = transformation.getMaxPCX();
-Index: magics++-2.18.1/src/Makefile.am
-===================================================================
---- magics++-2.18.1.orig/src/Makefile.am 2012-10-15 12:23:34.000000000 +0100
-+++ magics++-2.18.1/src/Makefile.am 2012-10-31 15:38:30.000000000 +0000
-@@ -8,8 +8,8 @@
- endif
-
- #if MAGICS_TERRALIB
--MAG_TERRALIB_DIR = terralib
--terralib_lib = terralib/libterralib.la
-+MAG_TERRALIB_DIR =
-+terralib_lib =
- #endif
-
- if MAGICS_JSON
-@@ -163,16 +163,8 @@
- EXTRA_DIST = boost
-
- if MAGICS_RASTER
--sharettfdir = $(datadir)/magics/ttf
--sharettf_DATA = $(top_srcdir)/share/magics/ttf/DejaVuSans-BoldOblique.ttf \
-- $(top_srcdir)/share/magics/ttf/DejaVuSans.ttf \
-- $(top_srcdir)/share/magics/ttf/DejaVuSerif-Oblique.ttf \
-- $(top_srcdir)/share/magics/ttf/DejaVuSans-Bold.ttf \
-- $(top_srcdir)/share/magics/ttf/DejaVuSerif-BoldOblique.ttf \
-- $(top_srcdir)/share/magics/ttf/DejaVuSerif.ttf \
-- $(top_srcdir)/share/magics/ttf/DejaVuSans-Oblique.ttf \
-- $(top_srcdir)/share/magics/ttf/DejaVuSerif-Bold.ttf \
-- $(top_srcdir)/share/magics/ttf/LICENSE-dejavu-ttf-2.15
-+sharettfdir =
-+sharettf_DATA =
- endif
-
- shareefidir = $(datadir)/magics/efi
-Index: magics++-2.18.1/configure
-===================================================================
---- magics++-2.18.1.orig/configure 2012-10-15 12:24:22.000000000 +0100
-+++ magics++-2.18.1/configure 2012-10-31 15:38:30.000000000 +0000
-@@ -22843,7 +22843,6 @@
- "src/drivers/Makefile") CONFIG_FILES="$CONFIG_FILES src/drivers/Makefile" ;;
- "src/oda/Makefile") CONFIG_FILES="$CONFIG_FILES src/oda/Makefile" ;;
- "src/visualisers/Makefile") CONFIG_FILES="$CONFIG_FILES src/visualisers/Makefile" ;;
-- "src/terralib/Makefile") CONFIG_FILES="$CONFIG_FILES src/terralib/Makefile" ;;
- "src/MvObs/Makefile") CONFIG_FILES="$CONFIG_FILES src/MvObs/Makefile" ;;
- "src/libTable/Makefile") CONFIG_FILES="$CONFIG_FILES src/libTable/Makefile" ;;
- "src/libMagWrapper/Makefile") CONFIG_FILES="$CONFIG_FILES src/libMagWrapper/Makefile" ;;
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index bfd822e..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/make -f
-
-# To enable all, uncomment following line
-DEB_BUILD_MAINT_OPTIONS:= hardening=+allx
-DEB_CFLAGS_MAINT_APPEND:= -Wall -pedantic
-export DEB_BUILD_MAINT_OPTIONS
-export DEB_CFLAGS_MAINT_APPEND
-
-# Uncomment this to turn on verbose mode.
-export DH_VERBOSE=1
-
-%:
- dh $@ --with python2,python3,autoreconf
-
-CFLAGS += -fPIC
-
-DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
-
-# --enable-opengl can't be used as lesstif not supported - missing Motif functionality
-
-override_dh_auto_clean:
- find . -type l -exec rm {} \;
- find . \( -name '*.pyc' -o -name '*.o' -o -name '*.a' \) -exec rm {} \;
- find . -name '.libs' -exec rm -rf {} \; || echo ".libs deleted already."
- find test \( -name '*.ps' -o -name '*.pdf' -o -name '*.svg' -o -name '*.png' \
- -o -name '*.kmz' \) -exec rm {} \;
- rm -f config.log
- rm -rf share/magics/ttf src/terralib
- $(MAKE) -k distclean || echo "Already distcleaned"
-
-override_dh_autoreconf:
- # remove out of date files
- rm -f conf/config.guess conf/config.sub
- libtoolize -c -f
- dh_autoreconf --as-needed
-
-override_dh_auto_configure:
- # link for font for tesing.
- mkdir -p share/fonts/truetype/ttf-dejavu/
- ln -sf /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf share/fonts/truetype/ttf-dejavu/
- # Link terralib
- [ -e src/terralib ] || ln -sf /usr/include/terralib src/terralib
- # Now build. LDFLAGS is a nasty hack past libtool breakage in install, where it fails
- # to find libraries _it_ created. And it makes stuff in the install step. bah.
- # autoreconf -if
- dh_auto_configure -- \
- --enable-bufr --enable-static --enable-cairo --with-emos-libraries=/usr/lib \
- --enable-python \
- LDFLAGS="$(LDFLAGS) -L$(shell pwd)/src/.libs -Wl,--as-needed" LIBS=" -lX11 -lpng12 -lz" \
- MAGPLUS_HOME=$(shell pwd)
-override_dh_auto_test check:
- echo "Tests disabled; see README-testfailures.txt for details"
- # (ulimit -s 8192; export PYTHONPATH=$(shell pwd)/swig ; export MAGPLUS_HOME=$(shell pwd) ; $(MAKE) check )
-
-override_dh_auto_install:
- #chrpath -d swig/*.so
- dh_auto_install
- # call configure to rebuild swig/Makefile with correct python version.
- # (cd swig/Magics && ln -sf /usr/share/pyshared/instant/swig/numpy.i )
- for pyvers in $(shell pyversions -r) ; do \
- ver=`echo $$pyvers | sed -e 's/python//g' ` ; \
- dh_auto_configure -- \
- --enable-bufr --enable-static --enable-cairo --with-emos-libraries=/usr/lib \
- --enable-python PYTHON=$$pyvers PYTHON_VERSION=$$ver \
- LDFLAGS="$(LDFLAGS) -L$(shell pwd)/src/.libs -Wl,--as-needed" ; \
- $(MAKE) -C python/Magics clean install PYTHON_INCLUDE_DIR=/usr/include/$$pyvers \
- DESTDIR=$(CURDIR)/debian/python-magics++ \
- MAGPLUS_HOME=$(shell pwd) ; done
- $(MAKE) -C tools prefix=$(shell pwd)/debian/tmp/usr install
- cp tools/mapgen_clip debian/tmp/usr/bin
- find debian -name '*.la' -delete
- find debian -name '_Magics.so.0' -delete # Bogus symlinks
- # Hack. dh_python2 doesn't know multarch yet.
- mv debian/python-magics++/usr/lib/${DEB_HOST_MULTIARCH}/p* debian/python-magics++/usr/lib
- rmdir debian/python-magics++/usr/lib/${DEB_HOST_MULTIARCH}
- dh_python2
- for pyvers in $(shell pyversions -r) ; do \
- dh_python2 /usr/lib/$$pyvers/site-packages/Magics ; \
- done
- dh_numpy -p python-magics++
- # remove fonts that are present in dejavu-ttf
- rm -rf debian/libmagics++-data/usr/share/magics/ttf
- find debian -name '*.so' -exec chrpath -d {} \;
- # Deal with links for Multi-Arch:
- dh_link -p libmagics++-dev /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3.0.0 /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so
- dh_link -p libmagplus3 /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3.0.0 /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3
- mkdir -p debian/libmagics++-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig
- find debian -name '*.la' -delete
diff --git a/debian/source/format b/debian/source/format
deleted file mode 100644
index 163aaf8..0000000
--- a/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/debian/source/options b/debian/source/options
deleted file mode 100644
index b7bc1f2..0000000
--- a/debian/source/options
+++ /dev/null
@@ -1 +0,0 @@
-compression = "xz"
diff --git a/python/Magics/Magics_interface.cc b/python/Magics/Magics_interface.cc
index eb23e9a..2ac5146 100755
--- a/python/Magics/Magics_interface.cc
+++ b/python/Magics/Magics_interface.cc
@@ -37,6 +37,9 @@ void cont() {
void minput() {
mag_input();
}
+void mtable() {
+ mag_table();
+}
void obs() {
mag_obs();
}
diff --git a/python/Magics/Makefile.in b/python/Magics/Makefile.in
index 4972b3e..4cff46d 100644
--- a/python/Magics/Makefile.in
+++ b/python/Magics/Makefile.in
@@ -117,6 +117,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -201,6 +202,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/python/Magics/macro.py b/python/Magics/macro.py
index ff3add7..9483039 100644
--- a/python/Magics/macro.py
+++ b/python/Magics/macro.py
@@ -33,6 +33,8 @@ actions={
"maxis": "paxis",
"paxis": "paxis",
"minput": "pinput",
+ "mtable": "ptable",
+ "ptable": "ptable",
"pinput": "pinput"
}
@@ -40,10 +42,14 @@ actions={
class Action(object):
- def __init__(self, verb, action, args):
+ def __init__(self, verb, action, html, args):
self.verb = verb
self.action = action
self.args = args
+ if ( html == "") :
+ self.html = verb
+ else :
+ self.html = "<a href=/wiki/display/MAGP/%s target='_blank'>%s</a>" % (html, verb)
def __repr__(self):
x = ""
@@ -59,7 +65,7 @@ class Action(object):
def tohtml(self, file):
sep=""
- val="%s("%self.verb
+ val="%s("%self.html
for key in self.args.keys():
if isinstance(self.args[key], str):
@@ -75,25 +81,35 @@ class Action(object):
if isinstance (self.args[key][0], str):
vval = ""
vsep = ""
- for v in self.args[key]:
- vval += vsep + self.quote(v)
- vsep = ",\n\t\t\t"
+ if (len(self.args[key]) < 5 ):
+ for v in self.args[key]:
+ vval += vsep + self.quote(v)
+ vsep = ", "
+ else :
+ vval = self.quote(self.args[key][0]) + ", " + self.quote(self.args[key][1]) + ",...," + self.quote(self.args[key][-2]) + ", " + self.quote(self.args[key][-1])
vval += ""
val+= '%s%s = [%s]'%(sep, key, vval)
elif isinstance(self.args[key][0], int):
vval = ""
vsep = ""
- for v in self.args[key]:
- vval += vsep + ("%d"%v)
- vsep = ", "
+ if (len(self.args[key]) < 5 ):
+ for v in self.args[key]:
+ vval += vsep + ("%df"%v)
+ vsep = ", "
+ else :
+ vval = ("%d"%self.args[key][0]) + ", " + ("%d"%self.args[key][1]) + ",...," + ("%d"%self.args[key][-2]) + ", " + ("%d"%self.args[key][-1])
vval += ""
val+= '%s%s = %s'%(sep, key, vval)
elif isinstance(self.args[key][0], float):
vval = ""
vsep = ""
- for v in self.args[key]:
- vval += vsep + ("%0.2f"%v)
- vsep = ", \n\t\t\t"
+ if (len(self.args[key]) < 5 ):
+ for v in self.args[key]:
+ vval += vsep + ("%0.2f"%v)
+ vsep = ", "
+ else :
+ vval = ("%0.2f"%self.args[key][0]) + ", " + ("%0.2f"%self.args[key][1]) + ",...," + ("%0.2f"%self.args[key][-2]) + ", " + ("%0.2f"%self.args[key][-1])
+
vval += ""
val+= '%s%s = [%s]'%(sep, key, vval)
elif isinstance(self.args[key], numpy.ndarray) :
@@ -110,9 +126,12 @@ class Action(object):
else :
vval = ""
vsep = ""
- for v in self.args[key]:
- vval += vsep + ("%0.2f"%v)
- vsep = ", "
+ if (len(self.args[key]) < 5 ):
+ for v in self.args[key]:
+ vval += vsep + ("%0.2f"%v)
+ vsep = ", "
+ else :
+ vval = ("%0.2f"%self.args[key][0]) + ", " + ("%0.2f"%self.args[key][1]) + ",...," + ("%0.2f"%self.args[key][-2]) + ", " + ("%0.2f"%self.args[key][-1])
vval += ""
val+= '%s%s = [%s]'%(sep, key, vval)
else :
@@ -293,6 +312,8 @@ class Action(object):
if self.action != None :
if self.action != Magics.new_page :
+ if self.action == Magics.legend :
+ Magics.setc("legend", "on")
self.action()
if self.action != Magics.obs :
for key in self.args.keys():
@@ -300,61 +321,62 @@ class Action(object):
else:
self.action("page")
-def make_action(verb, action):
+def make_action(verb, action, html=""):
def f(_m = None,**kw):
args = {}
if _m is not None:
args.update(_m)
args.update(kw)
- return Action(verb, action, args)
+ return Action(verb, action, html, args)
return f
-mcoast = make_action("mcoast", Magics.coast)
+mcoast = make_action("mcoast", Magics.coast, "Coastlines")
pcoast = make_action("pcoast", Magics.coast)
-maxis = make_action("maxis", Magics.axis)
+maxis = make_action("maxis", Magics.axis, "Axis")
paxis = make_action("paxis", Magics.axis)
-mcont = make_action("mcont", Magics.cont)
+mcont = make_action("mcont", Magics.cont, "Contouring")
pcont = make_action("pcont", Magics.cont)
-msymb = make_action("msymb", Magics.symb)
+msymb = make_action("msymb", Magics.symb, "Symbol")
psymb = make_action("psymb", Magics.symb)
pimport = make_action("pimport", Magics.mimport)
mimport = make_action("mimport", Magics.mimport)
mtaylor = make_action("mtaylor", Magics.taylor)
mgeo = make_action("mgeo", Magics.geo)
pgeo = make_action("pgeo", Magics.geo)
-pgrib = make_action("pgrib", Magics.grib)
-mgrib = make_action("mgrib", Magics.grib)
+pgrib = make_action("pgrib", Magics.grib, "Grib+Input")
+mgrib = make_action("mgrib", Magics.grib, "Grib+Input")
pmapgen = make_action("pmapgen", Magics.mapgen)
mmapgen = make_action("mmapgen", Magics.mapgen)
pnetcdf = make_action("pnetcdf", Magics.netcdf)
mnetcdf = make_action("mnetcdf", Magics.netcdf)
-odb_geopoints = make_action("odb_geopoints", Magics.odb)
-odb_geovectors = make_action("odb_geovectors", Magics.odb)
-odb_xypoints = make_action("odb_xypoints", Magics.odb)
-odb_xyvectors = make_action("odb_xyvectors", Magics.odb)
-pmap = make_action("pmap", None)
-mmap = make_action("mmap", None)
-plegend = make_action("plegend", Magics.legend)
-mlegend = make_action("mlegend", Magics.legend)
+odb_geopoints = make_action("odb_geopoints", Magics.odb, "Odbviewer")
+odb_geovectors = make_action("odb_geovectors", Magics.odb,"Odbviewer" )
+odb_xypoints = make_action("odb_xypoints", Magics.odb, "Odbviewer")
+odb_xyvectors = make_action("odb_xyvectors", Magics.odb, "Odbviewer")
+pmap = make_action("pmap", None, "Subpage")
+mmap = make_action("mmap", None, "Subpage")
+plegend = make_action("plegend", Magics.legend, "Legend")
+mlegend = make_action("mlegend", Magics.legend, "Legend")
ptext = make_action("mtext", Magics.text)
-mtext = make_action("ptext", Magics.text)
-output = make_action("output", None)
-pwind = make_action("pwind", Magics.wind)
-mwind = make_action("mwind", Magics.wind)
+mtext = make_action("mtext", Magics.text)
+output = make_action("output", None, "PNG Output")
+pwind = make_action("pwind", Magics.wind, "Wind+Plotting")
+mwind = make_action("mwind", Magics.wind, "Wind+Plotting")
pline = make_action("pline", Magics.line)
mline = make_action("mline", Magics.line)
-pgraph = make_action("pgraph", Magics.graph)
-mgraph = make_action("mgraph", Magics.graph)
+pgraph = make_action("pgraph", Magics.graph, "Graph+Plotting")
+mgraph = make_action("mgraph", Magics.graph, "Graph+Plotting")
pboxplot = make_action("pboxplot", Magics.boxplot)
mboxplot = make_action("mboxplot", Magics.boxplot)
pobs = make_action("pobs", Magics.obs)
mobs = make_action("mobs", Magics.obs)
page = make_action("page", Magics.new_page)
pinput = make_action("pinput", Magics.minput)
-minput = make_action("minput", Magics.minput)
+minput = make_action("minput", Magics.minput, "Input Data")
+mtable = make_action("mtable", Magics.mtable, "CSV Table Decoder")
-mwrepjson = make_action("mwrepjson", Magics.wrepjson)
+mwrepjson = make_action("mwrepjson", Magics.wrepjson, "WrepJSon")
mepscloud = make_action("mepscloud", Magics.epscloud)
mepsbar = make_action("mepsbar", Magics.epsbar)
mepswind = make_action("mepswind", Magics.epswind)
diff --git a/python/Magics/setup.py.in b/python/Magics/setup.py.in
index 8f68404..f8cc128 100644
--- a/python/Magics/setup.py.in
+++ b/python/Magics/setup.py.in
@@ -16,6 +16,7 @@ if "@odb@" != "no":
if "@bufr@" != "no":
if "@EMOS_LIB_NAME@":
lib_list.append("@EMOS_LIB_NAME@")
+ libpath_list.append("@EMOS_LIB_PATH@")
if "@FLIB@":
flibs=['@FLIB@']
lib_list += flibs
diff --git a/rpms/Makefile.in b/rpms/Makefile.in
index b453921..c4adcfa 100644
--- a/rpms/Makefile.in
+++ b/rpms/Makefile.in
@@ -91,6 +91,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -175,6 +176,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/MagicsSingle.cc b/src/MagicsSingle.cc
index db48c31..9eb2f51 100644
--- a/src/MagicsSingle.cc
+++ b/src/MagicsSingle.cc
@@ -23,7 +23,8 @@
*/
#include <iostream>
-
+#include <math.h>
+#include <stdio.h>
extern "C"
{
#include <magics_api.h>
@@ -32,7 +33,17 @@ extern "C"
void psetr_(char* name, float* value, int length)
{
std::string n(name, length);
- mag_setr(n.c_str(), *value);
+ double dval = *value;
+ // Here we try to improve the conversion to double for small numbers.
+
+ if ( *value < 1.0 && *value > -1.0 ) {
+ int val = *value * 10000000;
+ dval = val/10000000.;
+ }
+
+
+
+ mag_setr(n.c_str(), dval);
}
void pset1r_(char* name, float* data, int* dim, int length)
diff --git a/src/Makefile.in b/src/Makefile.in
index 22d1aae..6bf8965 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -236,6 +236,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -320,6 +321,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/MvObs/Makefile.in b/src/MvObs/Makefile.in
index 70a35b6..20a092e 100644
--- a/src/MvObs/Makefile.in
+++ b/src/MvObs/Makefile.in
@@ -130,6 +130,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -214,6 +215,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/basic/BasicGraphicsObject.cc b/src/basic/BasicGraphicsObject.cc
index dd4499d..d535e66 100644
--- a/src/basic/BasicGraphicsObject.cc
+++ b/src/basic/BasicGraphicsObject.cc
@@ -90,7 +90,14 @@ void BasicGraphicsObjectContainer::clear()
}
objects_.clear();
}
-
+void BasicGraphicsObjectContainer::release()
+{
+ MagLog::debug() << "CLEAR CONTAINER" << objects_.size() << endl;
+ for (vector<BasicGraphicsObject*>::iterator object = objects_.begin(); object!= objects_.end(); ++object) {
+ (*object)->release();
+ }
+ objects_.clear();
+}
void BasicGraphicsObject::check()
{
if (parent_)
diff --git a/src/basic/BasicGraphicsObject.h b/src/basic/BasicGraphicsObject.h
index be755b8..8f1357b 100644
--- a/src/basic/BasicGraphicsObject.h
+++ b/src/basic/BasicGraphicsObject.h
@@ -65,6 +65,8 @@ public:
void makeBrother(const BasicGraphicsObject& brother)
{ parent_ = brother.parent_; }
+ virtual void release() {}
+
bool isOrphan() { return parent_== 0; }
void orphan() { parent_ = 0; }
@@ -128,6 +130,7 @@ public:
void clear();
bool buildTree(const Layout&, unsigned int, const BaseDriver&) const;
+ void release();
void remove(BasicGraphicsObject* object) {
std::remove(objects_.begin(), objects_.end(), object);
diff --git a/src/basic/FortranMagics.cc b/src/basic/FortranMagics.cc
index 1fa5a46..a820fdb 100644
--- a/src/basic/FortranMagics.cc
+++ b/src/basic/FortranMagics.cc
@@ -220,6 +220,7 @@ void FortranMagics::subpage()
{
axisContainer_ = new FortranViewNode();
+ axisContainer_->push_back(new MetaDataVisitor());
top()->push_back(axisContainer_);
axisContainer_->getReady();
push(axisContainer_);
@@ -502,6 +503,7 @@ void FortranMagics::dispatch()
if ( !root_ ) // Nothing has been done so far!
return;
drivers_->dispatch(root_->visualise());
+ MetaDataVisitor::collect();
root_->release();
}
@@ -628,6 +630,23 @@ void FortranMagics::pinput()
}
}
+#include "TableDecoder.h"
+void FortranMagics::ptable()
+{
+
+ actions();
+ if (geographical())
+ {
+ geoaction_ = new VisualAction();
+ geoaction_->data(new TableDecoder());
+ top()->push_back(geoaction_);
+ }
+ else {
+ xyaction_ = new VisualAction();
+ xyaction_->data(new TableDecoder());
+ top()->push_back(xyaction_);
+ }
+}
#ifdef MAGICS_ODB
#include "OdaDecoder.h"
@@ -1025,10 +1044,27 @@ void FortranMagics::pgraph()
{
actions();
+
+
+
GraphPlotting* graph = new GraphPlotting();
+ if (geographical() ) {
+ if ( !geoaction_ ) {
+ geoaction_ = new VisualAction();
+ top()->push_back(geoaction_);
+ XYList* input = new XYList();
+ geoaction_->data(input);
+ MagLog::dev() << *input << "\n";
+ }
+ geoaction_->visdef(graph);
+ return;
+ }
+
+
// do we need a new Action?
// we check the previous one!
// if it looks ok we create a new one
+
if ( ( xyaction_ && xyaction_->isValid() ) || !xyaction_ ) {
xyaction_ = new VisualAction();
top()->push_back(xyaction_);
diff --git a/src/basic/FortranMagics.h b/src/basic/FortranMagics.h
index 4cb9035..ea0c446 100644
--- a/src/basic/FortranMagics.h
+++ b/src/basic/FortranMagics.h
@@ -65,6 +65,7 @@ public:
void pnetcdf();
void pgeo();
void pinput();
+ void ptable();
void pcont();
void ptext();
void ptest();
diff --git a/src/basic/Layer.cc b/src/basic/Layer.cc
index 6e7496a..eb0843a 100644
--- a/src/basic/Layer.cc
+++ b/src/basic/Layer.cc
@@ -245,10 +245,15 @@ void SingleLayer::execute(const BaseDriver& driver) const
assert(objects_);
objects_->redisplay(driver);
- const_cast<SingleLayer*>(this)->release();
- const_cast<SingleLayer*>(this)->objects_->clear();
+
+}
+void SingleLayer::release()
+{
+ Layer::release();
+ objects_->clear();
}
+
void SingleLayer::update(const Layout& parent)
{
assert(objects_);
diff --git a/src/basic/Layer.h b/src/basic/Layer.h
index 2b0880d..d478ae2 100644
--- a/src/basic/Layer.h
+++ b/src/basic/Layer.h
@@ -180,6 +180,8 @@ public:
Layer* baseLayer();
LevelDescription& dataLevel() const;
DateDescription& timeStamp() const;
+ void release();
+
protected:
mutable Layout* objects_;
diff --git a/src/basic/LegendVisitor.cc b/src/basic/LegendVisitor.cc
index 78d1a55..804d498 100644
--- a/src/basic/LegendVisitor.cc
+++ b/src/basic/LegendVisitor.cc
@@ -115,6 +115,16 @@ PaperPoint LegendEntry::leftTextBox(const PaperPoint& middle)
MagLog::dev() << "LegendEntry::leftTextBox" << point << endl;
return point;
}
+PaperPoint ArrowEntry::leftTextBox(const PaperPoint& middle)
+{
+ // The box is going from x-1 to x+1
+ // The width of the Symbol box is 100-width;
+
+ PaperPoint point(middle);
+ point.x_ = (middle.x_-0.8);
+ point.y_ -= 0.3;
+ return point;
+}
double LegendEntry::computeWidth(double width)
{
return ((100-width_)/50)*width;
@@ -228,18 +238,19 @@ void LegendVisitor::build()
}
else
text = (this->*composition->second)(automatic, user);
-
+ if ( !lines_.empty() ) {
+ ++label;
+ if (label == lines_.end()) --label;
+ }
}
legend->setFont(font);
legend->setText(text);
legend->setAngle((orientation_/180.)*3.14);
(*legend).setVerticalAlign(orientation_ ? MBOTTOM : MHALF);
- if ( ! lines_.empty() ) {
- ++label;
- if (label == lines_.end()) --label;
- }
+
if (text=="ignore") continue;
+
(magCompare(direction_, "column") ) ?
(*method_).column(**entry, position->first, position->second, *legend, *legend_) :
(*method_).row(**entry, position->first, position->second, *legend, *legend_);
@@ -453,13 +464,20 @@ void ArrowEntry::set(const PaperPoint& point, BasicGraphicsObjectContainer& lege
}
void ArrowEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
{
-
- set(point, legend);
+ PaperPoint pos(centreSymbolBox(point));
+ double width = computeWidth(0.8)/2;
+ pos.x_ += (width/2);
Text* text = new Text();
text->addText(label_, font_);
- text->push_back(leftTextBox(point));
- text->setJustification(MLEFT);
+ text->push_back(pos);
legend.push_back(text);
+
+
+ pos.y_ += 0.2;
+ pos.x_ -= (width);
+
+ arrow_->push_back(ArrowPoint(arrow_->getScale(), 0, pos));
+ legend.push_back(arrow_);
}
void ArrowEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
{
diff --git a/src/basic/LegendVisitor.h b/src/basic/LegendVisitor.h
index b3e3192..ecca65a 100644
--- a/src/basic/LegendVisitor.h
+++ b/src/basic/LegendVisitor.h
@@ -92,7 +92,7 @@ public:
void width(double width) { width_ = width; }
PaperPoint centreSymbolBox(const PaperPoint&);
- PaperPoint leftTextBox(const PaperPoint&);
+ virtual PaperPoint leftTextBox(const PaperPoint&);
double computeWidth(double);
@@ -252,6 +252,7 @@ public:
virtual void rowBox(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void columnBox(const PaperPoint&, BasicGraphicsObjectContainer&);
bool needContinuousText() { return false; }
+ PaperPoint leftTextBox(const PaperPoint&);
protected:
Arrow* arrow_;
};
diff --git a/src/basic/LegendVisitorAttributes.h b/src/basic/LegendVisitorAttributes.h
index dc59340..42e9e8a 100644
--- a/src/basic/LegendVisitorAttributes.h
+++ b/src/basic/LegendVisitorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/basic/MagnifierVisitorAttributes.h b/src/basic/MagnifierVisitorAttributes.h
index eab538d..5e9289c 100644
--- a/src/basic/MagnifierVisitorAttributes.h
+++ b/src/basic/MagnifierVisitorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:27 2013
*/
diff --git a/src/basic/Makefile.in b/src/basic/Makefile.in
index c9b3958..6ae1b00 100644
--- a/src/basic/Makefile.in
+++ b/src/basic/Makefile.in
@@ -184,6 +184,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -268,6 +269,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/basic/MultiVisdef.cc b/src/basic/MultiVisdef.cc
index ed59fbe..c91eb86 100644
--- a/src/basic/MultiVisdef.cc
+++ b/src/basic/MultiVisdef.cc
@@ -42,6 +42,20 @@ void MultiVisdef::operator()(Data& data, BasicGraphicsObjectContainer& out)
}
+bool MultiVisdef::needLegend()
+{
+
+
+ for (vector<Visdef*>::iterator visdef = one_d_.begin(); visdef != one_d_.end(); ++visdef)
+ if ( (*visdef)->needLegend() )
+ return true;
+ for (vector<Visdef*>::iterator visdef = two_d_.begin(); visdef != two_d_.end(); ++visdef)
+ if ( (*visdef)->needLegend() )
+ return true;
+ return false;
+
+}
+
void MultiVisdef::visit(LegendVisitor& legend)
{
diff --git a/src/basic/MultiVisdef.h b/src/basic/MultiVisdef.h
index f135942..9f37c1a 100644
--- a/src/basic/MultiVisdef.h
+++ b/src/basic/MultiVisdef.h
@@ -35,6 +35,7 @@ public:
virtual void visit(Transformation&, Data&);
virtual void visit(Layer& layer);
virtual void beanInfo(IntervalMap<Colour>&);
+ bool needLegend();
protected:
//! Method to print string about this class on to a stream of type ostream (virtual).
diff --git a/src/basic/TagHandler.cc b/src/basic/TagHandler.cc
index 541fb67..d1ec133 100644
--- a/src/basic/TagHandler.cc
+++ b/src/basic/TagHandler.cc
@@ -97,6 +97,7 @@ TagConverter::TagConverter(TagHandler& owner) : owner_(owner), text_(0) {
map_["data"] = &TagConverter::data;
map_["grib_info"] = &TagConverter::grib;
map_["json_info"] = &TagConverter::json;
+ map_["spot_info"] = &TagConverter::spot;
map_["netcdf_info"] = &TagConverter::netcdf;
map_["magics_title"] = &TagConverter::magics;
map_["base_date"] = &TagConverter::base_date;
@@ -155,6 +156,19 @@ void TagConverter::grib(const XmlNode& node) {
elevation_ = top().elevation();
}
+void TagConverter::spot(const XmlNode& node) {
+
+ push();
+ const map<string, string>& attributes = node.attributes();
+ if (attributes.find("key") != attributes.end() ) {
+ string result = owner_.get("spot", attributes.find("key")->second);
+ check(owner_.get("spot", attributes.find("key")->second));
+ }
+ node.visit(*this);
+ pop();
+}
+
+
void TagConverter::json(const XmlNode& node) {
push();
@@ -352,6 +366,7 @@ bool TagConverter::staticTag(const string& line)
keys.push_back("grib_info");
keys.push_back("netcdf_info");
keys.push_back("json_info");
+ keys.push_back("spot_info");
keys.push_back("magics_title");
}
for ( vector<string> ::iterator key = keys.begin(); key !=keys. end(); ++key) {
diff --git a/src/basic/TagHandler.h b/src/basic/TagHandler.h
index 575c2d7..bba47fa 100644
--- a/src/basic/TagHandler.h
+++ b/src/basic/TagHandler.h
@@ -67,6 +67,7 @@ public:
void grib(const XmlNode&);
void netcdf(const XmlNode&);
+ void spot(const XmlNode&);
void pass(const XmlNode&);
void font(const MagFont& font) { font_ = font; }
diff --git a/src/basic/WrepRootNodeAttributes.h b/src/basic/WrepRootNodeAttributes.h
index e7a6861..1a23158 100644
--- a/src/basic/WrepRootNodeAttributes.h
+++ b/src/basic/WrepRootNodeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/basic/XmlBasicNodeAttributes.h b/src/basic/XmlBasicNodeAttributes.h
index e9e9d76..2c8789a 100644
--- a/src/basic/XmlBasicNodeAttributes.h
+++ b/src/basic/XmlBasicNodeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/basic/XmlRootNodeAttributes.h b/src/basic/XmlRootNodeAttributes.h
index 7e2b25e..73ca674 100644
--- a/src/basic/XmlRootNodeAttributes.h
+++ b/src/basic/XmlRootNodeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/basic/XmlSceneNodeAttributes.h b/src/basic/XmlSceneNodeAttributes.h
index 5c83121..70e0e6b 100644
--- a/src/basic/XmlSceneNodeAttributes.h
+++ b/src/basic/XmlSceneNodeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/basic/XmlViewNodeAttributes.h b/src/basic/XmlViewNodeAttributes.h
index 68aec76..a50cf78 100644
--- a/src/basic/XmlViewNodeAttributes.h
+++ b/src/basic/XmlViewNodeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/common/CartesianTransformation.h b/src/common/CartesianTransformation.h
index a207465..4c5d6dd 100644
--- a/src/common/CartesianTransformation.h
+++ b/src/common/CartesianTransformation.h
@@ -56,6 +56,7 @@ public:
virtual double y(double y) const { return (*y_)(y); }
virtual double rx(double x) const { return (*x_).revert(x); }
virtual double ry(double y) const { return (*y_).revert(y); }
+ virtual void fast_reproject(double& x, double& y) const { x = (*x_)(x); y = (*y_)(y); }
virtual PaperPoint operator()(const UserPoint& xy) const
{ return PaperPoint((*x_)(xy.x()), (*y_)(xy.y()), xy.value()); }
diff --git a/src/common/ColourTableDefinitionCompute.cc b/src/common/ColourTableDefinitionCompute.cc
index b8b0b04..1eb2291 100644
--- a/src/common/ColourTableDefinitionCompute.cc
+++ b/src/common/ColourTableDefinitionCompute.cc
@@ -88,14 +88,10 @@ void ColourTableDefinitionCompute::set(ColourTable& table, int nb)
MagLog::dev() << "nb interval-->" << nb << endl;
Hsl hmin = minColour_.hsl();
Hsl hmax = maxColour_.hsl();
-/*
- table.push_back(Colour("none"));
- nb--;
- if ( nb < 2) {
- return;
-
- }
-*/
+ if (nb == 1) {
+ table.push_back(minColour_);
+ return;
+ }
if (nb == 2) {
table.push_back(minColour_);
return;
@@ -106,31 +102,8 @@ void ColourTableDefinitionCompute::set(ColourTable& table, int nb)
return;
}
-/*
-
- if ( hmax.hue_ == hmin.hue_ && hmax.light_ != 1 && hmin.light_ != 1) {
- // Grey scale...
- step_light = (hmax.light_ - hmin.light_)/(nb-2);
- for ( int i = 0; i < nb; i++) {
- table.push_back(Colour(hmin));
- hmin.light_ += step_light;
- }
- return;
- }
- */
-
- if (nb == 1) {
- // Only One Colour to allocate;
- step_hue = hmax.hue_ - hmin.hue_;
- step_alpha = hmax.alpha_ - hmin.alpha_;
- if ( step_hue == 0 ) {
- step_hue = 1;
- hmax.hue_++;
- // Change the value of hmax to be sure that we have at least one colour...
- }
- }
-
- else {
+
+
step_light = (hmax.light_ - hmin.light_)/(nb-2);
step_alpha = (hmax.alpha_ - hmin.alpha_)/(nb-2);
if ( magCompare(direction_, "anti_clockwise") ) {
@@ -141,7 +114,7 @@ void ColourTableDefinitionCompute::set(ColourTable& table, int nb)
if ( hmin.hue_ < hmax.hue_ ) hmin.hue_ += 360;
step_hue = (hmax.hue_ - hmin.hue_)/(nb-2);
}
- }
+
float step_sat = (hmax.saturation_ - hmin.saturation_)/(nb-2);
// WE have nb levels : we need nb-1 colours!
diff --git a/src/common/Coordinate.h b/src/common/Coordinate.h
index edb18c2..b3b6905 100644
--- a/src/common/Coordinate.h
+++ b/src/common/Coordinate.h
@@ -458,7 +458,10 @@ public:
YLogarithmicCoordinateAttributes::set(regular);
set();
}
-
+ virtual void set(const map<string, string>& map) {
+ YLogarithmicCoordinateAttributes::set(map);
+ set();
+ }
virtual void toxml(ostream& out) const { YLogarithmicCoordinateAttributes::toxml(out); }
void set() {
switch ( automatic_ ) {
diff --git a/src/common/FortranRootSceneNodeAttributes.h b/src/common/FortranRootSceneNodeAttributes.h
index 5cff208..56e06dc 100644
--- a/src/common/FortranRootSceneNodeAttributes.h
+++ b/src/common/FortranRootSceneNodeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/common/FortranSceneNodeAttributes.h b/src/common/FortranSceneNodeAttributes.h
index a9ff25b..a367dac 100644
--- a/src/common/FortranSceneNodeAttributes.h
+++ b/src/common/FortranSceneNodeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/common/FortranViewNodeAttributes.h b/src/common/FortranViewNodeAttributes.h
index 8312a74..427218b 100644
--- a/src/common/FortranViewNodeAttributes.h
+++ b/src/common/FortranViewNodeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:27 2013
*/
diff --git a/src/common/GeoRectangularProjectionAttributes.h b/src/common/GeoRectangularProjectionAttributes.h
index 72705cb..6d9af21 100644
--- a/src/common/GeoRectangularProjectionAttributes.h
+++ b/src/common/GeoRectangularProjectionAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:17 2012
+ Generated: Mon Apr 15 17:55:27 2013
*/
diff --git a/src/common/Layout.cc b/src/common/Layout.cc
index 624e325..835e19c 100644
--- a/src/common/Layout.cc
+++ b/src/common/Layout.cc
@@ -61,7 +61,7 @@ Layout::~Layout()
void Layout::redisplay(const BaseDriver& driver) const
{
- if ( objects_.empty() )
+ if ( objects_.empty() && name_ != "drawing")
return;
MagLog::debug() << "Layout::redisplay-->" << *this << endl;
driver.redisplay(*this);
@@ -379,9 +379,7 @@ void RootLayout::redisplay(const BaseDriver& driver) const
}
- // here we can release the graphics object!
- MagLog::debug() << "RELEASE OBJECTS!!!!!!!!!!!!" << endl;
- const_cast<RootLayout*>(this)->clear();
+
}
else
driver.redisplay(*this);
@@ -474,6 +472,14 @@ bool Layout::buildTree(const Layout& parent, unsigned int frame, const BaseDrive
return more;
}
+void Layout::release()
+{
+ if ( resolve_ ) {
+ for (vector<BasicGraphicsObject*>::iterator object = objects_.begin(); object!= objects_.end(); ++object)
+ (*object)->release();
+ }
+}
+
BasicLayout::BasicLayout()
{
}
diff --git a/src/common/Layout.h b/src/common/Layout.h
index f84b663..281db72 100644
--- a/src/common/Layout.h
+++ b/src/common/Layout.h
@@ -146,7 +146,7 @@ public:
double absoluteHeight() const; //absolute position from the root
bool buildTree(const Layout&, unsigned int, const BaseDriver&) const;
-
+ void release(); // Release the graphical objects!
virtual Layout* execute(AnimationStep& step, const Layout* visitor);
@@ -179,7 +179,8 @@ public:
height = driverInfos_.front().height_;
}
else {
- parent_->getDriverInfo(x, y, width, height);
+ if ( parent_)
+ parent_->getDriverInfo(x, y, width, height);
}
}
diff --git a/src/common/LogoPlottingAttributes.h b/src/common/LogoPlottingAttributes.h
index 2405552..507d04e 100644
--- a/src/common/LogoPlottingAttributes.h
+++ b/src/common/LogoPlottingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/common/MagicsCalls.cc b/src/common/MagicsCalls.cc
index 4a78bee..672ba3a 100644
--- a/src/common/MagicsCalls.cc
+++ b/src/common/MagicsCalls.cc
@@ -336,7 +336,7 @@ public :
}
- return true;
+ return false;
}
};
@@ -1138,6 +1138,12 @@ void pinput_()
{
magics_->pinput();
}
+void ptable_()
+{
+ magics_->ptable();
+}
+
+
void peps_()
{
@@ -1210,6 +1216,7 @@ void mag_overlay(){poverlay_();}
void mag_netcdf(){pnetcdf_();}
void mag_cont() {pcont_();}
void mag_input() {pinput_();}
+void mag_table() {ptable_();}
void mag_obs() {pobs_();}
void mag_raw() {praw_();}
void mag_image() {pimage_();}
@@ -1219,7 +1226,6 @@ void mag_wind() {pwind_();}
void mag_symb() {psymb_();}
void mag_boxplot() {pboxplot_();}
void mag_taylor() {ptaylor_();}
-
void mag_wrepjson() { pwrepjson_(); }
void mag_epscloud() { pepscloud_(); }
@@ -1448,8 +1454,14 @@ void mag_enqi(const char* name, int *value)
void mag_enqc(const char* name, char* value)
{
string magics;
- ParameterManager::get(string(name),magics);
- strcpy( value, magics.c_str() );
+
+ if (magCompare(string(name), "magics_version") ) {
+ magics = getMagicsVersionString();
+ }
+ else
+ ParameterManager::get(string(name),magics);
+
+ strcpy(value, magics.c_str() );
}
diff --git a/src/common/MagicsFormat.cc b/src/common/MagicsFormat.cc
index da14237..9bf1345 100644
--- a/src/common/MagicsFormat.cc
+++ b/src/common/MagicsFormat.cc
@@ -227,7 +227,7 @@ bool MagicsFormat::valid(ostream& out) const
if (isdigit(*c) ) break;
if ( *c == ')' ) {
// set the width.
- char bufr[256];
+ char bufr[1024];
string print = "%" + width + precision + specifier;
sprintf(bufr, print.c_str(), value_);
diff --git a/src/common/Makefile.in b/src/common/Makefile.in
index ce42a72..64a19bb 100644
--- a/src/common/Makefile.in
+++ b/src/common/Makefile.in
@@ -277,6 +277,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -361,6 +362,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/common/MatrixHandler.h b/src/common/MatrixHandler.h
index d0f4dd9..0bf24fe 100644
--- a/src/common/MatrixHandler.h
+++ b/src/common/MatrixHandler.h
@@ -575,7 +575,21 @@ public:
index2 = upperColumn(r);
column2 = regular_column(index2);
}
-
+ int rowIndex(double r) const {
+ map<double, int>::const_iterator i = rowsMap_.lower_bound(r);
+ if ( same(i->first, r) )
+ return i->second;
+ return -1;
+
+
+ }
+
+ int columnIndex(double c) const {
+ map<double, int>::const_iterator i = columnsMap_.lower_bound(c);
+ if ( same(i->first, c) )
+ return i->second;
+ return -1;
+ }
virtual ~BoxMatrixHandler() { delete original_; }
diff --git a/src/common/OutputHandlerAttributes.h b/src/common/OutputHandlerAttributes.h
index 85dd677..4de5955 100644
--- a/src/common/OutputHandlerAttributes.h
+++ b/src/common/OutputHandlerAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:20 2013
*/
diff --git a/src/common/PageIDAttributes.h b/src/common/PageIDAttributes.h
index c3de7e3..b929fef 100644
--- a/src/common/PageIDAttributes.h
+++ b/src/common/PageIDAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/common/UserLogoPlottingAttributes.h b/src/common/UserLogoPlottingAttributes.h
index 11426ef..efe6c2f 100644
--- a/src/common/UserLogoPlottingAttributes.h
+++ b/src/common/UserLogoPlottingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/common/magics_api.h b/src/common/magics_api.h
index 9fc21d4..7733ab6 100644
--- a/src/common/magics_api.h
+++ b/src/common/magics_api.h
@@ -54,6 +54,7 @@ void mag_boxplot();
void mag_line();
void mag_taylor();
void mag_input();
+void mag_table();
void mag_wrepjson();
void mag_epscloud();
diff --git a/src/decoders/BinningObjectAttributes.h b/src/decoders/BinningObjectAttributes.h
index a249d0d..32498d2 100644
--- a/src/decoders/BinningObjectAttributes.h
+++ b/src/decoders/BinningObjectAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
diff --git a/src/decoders/DateGribLoopStepAttributes.h b/src/decoders/DateGribLoopStepAttributes.h
index bae034b..49d80c9 100644
--- a/src/decoders/DateGribLoopStepAttributes.h
+++ b/src/decoders/DateGribLoopStepAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/decoders/EpsXmlInput.cc b/src/decoders/EpsXmlInput.cc
index 3c01f62..59adf03 100644
--- a/src/decoders/EpsXmlInput.cc
+++ b/src/decoders/EpsXmlInput.cc
@@ -114,14 +114,14 @@ void EpsXmlInput::visit(TextVisitor& title)
ostringstream line;
UserPoint position(longitude_, latitude_);
line << station_ << "(" << position.asLatitude() << ", " << position.asLongitude() << ")" << endl;
- title.add(new TextEntry(title_));
- title.add(new TextEntry(line.str()));
- title.add(new TextEntry(out.str()));
+ title.addAutomaticTitle(title_);
+ title.addAutomaticTitle(line.str());
+ title.addAutomaticTitle(out.str());
}
if ( short_title_ )
{
- title.add(new TextEntry(""));
- title.add(new TextEntry(parameter_));
+ title.addAutomaticTitle("");
+ title.addAutomaticTitle(parameter_);
}
}
diff --git a/src/decoders/EpsgramDecoder.cc b/src/decoders/EpsgramDecoder.cc
index 1dc1ded..4edb92a 100644
--- a/src/decoders/EpsgramDecoder.cc
+++ b/src/decoders/EpsgramDecoder.cc
@@ -1239,8 +1239,8 @@ void SpotDecoder::visit(TextVisitor& title)
decode();
moreTitle(title);
- if ( parameter_ && !magCompare(parameter_->title(), "ignore") )
- title.add(new TextEntry(parameter_->title()));
+ if ( !magCompare(parameter_->title(), "ignore") )
+ title.update("spot", "parameter", parameter_->title());
}
static string build_date(const string& date, const string& time)
@@ -1309,11 +1309,10 @@ EpsgramDecoder::~EpsgramDecoder()
void EpsgramDecoder::moreTitle(TextVisitor& title) const
{
- if (long_title_ == false ) return;
static map<string, string> titles;
if ( titles.empty() ) {
- titles["eps10"] = "Deterministic Forecast and EPS Distribution ";
+ titles["eps10"] = "";
titles["eps15"] = "Extended Range Forecast based on EPS Distribution ";
titles["epsrose"] = "Deterministic Forecast and EPS Distribution ";
titles["epsplume"] = "ECMWF ensemble forecast ";
@@ -1345,14 +1344,9 @@ void EpsgramDecoder::moreTitle(TextVisitor& title) const
station = station + string(" ") + grid_.asLatitude() + " " + grid_.asLongitude() + landsea + height;
}
- title.add(new TextEntry(station));
+ title.update("spot", "base_date", date);
+ title.update("spot", "station", station);
- map<string, string>::const_iterator t = titles.find(SpotDecoder::type_);
- if ( t != titles.end() )
- title.add(new TextEntry(t->second + date));
- else
- title.add(new TextEntry(SpotDecoder::type_ + "title to implement " + date));
- title.add(new TextEntry());
}
diff --git a/src/decoders/GeoPointsDecoderAttributes.h b/src/decoders/GeoPointsDecoderAttributes.h
index 40f2952..0522c59 100644
--- a/src/decoders/GeoPointsDecoderAttributes.h
+++ b/src/decoders/GeoPointsDecoderAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/decoders/GribDecoderAttributes.h b/src/decoders/GribDecoderAttributes.h
index 97bd20a..4f75ef2 100644
--- a/src/decoders/GribDecoderAttributes.h
+++ b/src/decoders/GribDecoderAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/decoders/GribLoopAttributes.h b/src/decoders/GribLoopAttributes.h
index 12ba557..00413d5 100644
--- a/src/decoders/GribLoopAttributes.h
+++ b/src/decoders/GribLoopAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/decoders/GribRegularInterpretor.cc b/src/decoders/GribRegularInterpretor.cc
index 6d53aba..f646b18 100644
--- a/src/decoders/GribRegularInterpretor.cc
+++ b/src/decoders/GribRegularInterpretor.cc
@@ -305,6 +305,7 @@ void GribRegularInterpretor::latitudes(const GribDecoder& grib, vector<double>&
latitudes.push_back(y);
y += lat;
}
+
}
@@ -313,16 +314,20 @@ void GribRegularGaussianInterpretor::latitudes(const GribDecoder& grib, vector<d
long res = grib.getLong("numberOfParallelsBetweenAPoleAndTheEquator");
double array[2 *res];
grib_get_gaussian_latitudes(res, array);
- double north = grib.getDouble("latitudeOfFirstGridPointInDegrees");
-
- double south = grib.getDouble("latitudeOfLastGridPointInDegrees");;
-
+ double first = grib.getDouble("latitudeOfFirstGridPointInDegrees");
+ double last = grib.getDouble("latitudeOfLastGridPointInDegrees");;
+
+ double north = std::max(first, last);
+ double south = std::min(first, last);
for ( int i = 0; i < 2*res; i++ )
{
if ( array[i] <= north && array[i] >= south)
latitudes.push_back(array[i]);
}
-
+ // get the scanning mode !
+ long scanning = grib.getLong("jScansPositively");;
+ if (scanning == 1 )
+ std::reverse(latitudes.begin(), latitudes.end());
}
diff --git a/src/decoders/ImportActionAttributes.h b/src/decoders/ImportActionAttributes.h
index 0b354d5..d099b81 100644
--- a/src/decoders/ImportActionAttributes.h
+++ b/src/decoders/ImportActionAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/decoders/InputData.cc b/src/decoders/InputData.cc
index 0669702..f0ef16d 100644
--- a/src/decoders/InputData.cc
+++ b/src/decoders/InputData.cc
@@ -123,7 +123,9 @@ void InputData::customisedPoints(const Transformation& transformation, const std
{
prepare();
vector<double>::const_iterator x = x_values_.begin();
+ vector<double>::const_iterator x2 = x2_values_.begin();
vector<double>::const_iterator y = y_values_.begin();
+ vector<double>::const_iterator y2 = y2_values_.begin();
vector<double>::const_iterator xc = x_component_.begin();
vector<double>::const_iterator yc = y_component_.begin();
vector<double>::const_iterator v = values_.begin();
@@ -153,11 +155,13 @@ void InputData::customisedPoints(const Transformation& transformation, const std
if ( same(*x, x_missing_) )
point->missing(true);
(*point)["x"] = valx;
+ (*point)["x_lower"] = valx;
x++;
if ( same(*y, y_missing_) )
point->missing(true);
(*point)["y"] = valy;
+ (*point)["y_lower"] = valy;
y++;
double speed = 0;
@@ -176,20 +180,35 @@ void InputData::customisedPoints(const Transformation& transformation, const std
}
else
(*point)["colour_component"] = speed;
+
+ if (needs.find("bar") != needs.end()) {
+
+ if ( y2 != y2_values_.end() ) {
+ (*point)["y_upper"] = *(y2++);
+ }
+ if ( x2 != x2_values_.end() ) {
+
+ (*point)["x_upper"] = *(x2++);
+ }
+
+ }
}
+
+
+
if ( needs.find("area") == needs.end() )
return;
- vector<double>::reverse_iterator x2 = x2_values_.rbegin();
- vector<double>::reverse_iterator y2 = y2_values_.rbegin();
- while ( x2 != x2_values_.rend() && y2 != y2_values_.rend() ) {
+ vector<double>::reverse_iterator xr2 = x2_values_.rbegin();
+ vector<double>::reverse_iterator yr2 = y2_values_.rbegin();
+ while ( xr2 != x2_values_.rend() && yr2 != y2_values_.rend() ) {
CustomisedPoint* point = new CustomisedPoint();
- if ( same(*x2, x_missing_) )
+ if ( same(*xr2, x_missing_) )
point->missing(true);
- (*point)["x"] = *(x2++);
+ (*point)["x"] = *(xr2++);
- if ( same(*y2, y_missing_) )
+ if ( same(*yr2, y_missing_) )
point->missing(true);
- (*point)["y"] = *(y2++);
+ (*point)["y"] = *(yr2++);
out.push_back(point);
}
}
diff --git a/src/decoders/InputMatrixInterpretor.cc b/src/decoders/InputMatrixInterpretor.cc
index 7640228..33a41df 100644
--- a/src/decoders/InputMatrixInterpretor.cc
+++ b/src/decoders/InputMatrixInterpretor.cc
@@ -127,16 +127,18 @@ Matrix* InputMatrixRegularInterpretor::xyInterpret(Matrix* in, const InputMatrix
// if y a date or an normal axis..
if ( !y_first_date_.empty() ) {
- y_first_ = 0;
+ DateTime ref(dateY_);
DateTime from(y_first_date_);
DateTime to(y_last_date_);
- y_last_ = to-from;
+ y_first_ = from-ref;
+ y_last_ = to-ref;
}
if ( !x_first_date_.empty() ) {
- x_first_ = 0;
+ DateTime ref(dateX_);
DateTime from(x_first_date_);
DateTime to(x_last_date_);
- x_last_ = to-from;
+ x_first_ = from-ref;
+ x_last_ = to-ref;
}
double y = y_first_;
double step = (y_last_ - y_first_)/(in->rows()-1);
@@ -273,7 +275,12 @@ void InputMatrixRegularInterpretor::getReady(const Transformation& transformatio
{
if ( transformation.xAxisType() != "date" )
x_first_date_.clear();
+ else
+ dateX_ = transformation.getReferenceX();
+
if ( transformation.yAxisType() != "date" )
y_first_date_.clear();
+ else
+ dateY_ = transformation.getReferenceY();
}
diff --git a/src/decoders/InputMatrixInterpretor.h b/src/decoders/InputMatrixInterpretor.h
index b1b3210..738fc5e 100644
--- a/src/decoders/InputMatrixInterpretor.h
+++ b/src/decoders/InputMatrixInterpretor.h
@@ -104,6 +104,8 @@ public:
protected:
//! Method to print string about this class on to a stream of type ostream (virtual).
virtual void print(ostream&) const;
+ string dateX_; // Used to adjust the Matrix according to the projection
+ string dateY_; // Used to adjust the Matrix according to the projection
private:
//! Copy constructor - No copy allowed
diff --git a/src/decoders/Makefile.in b/src/decoders/Makefile.in
index f3991a2..c39d115 100644
--- a/src/decoders/Makefile.in
+++ b/src/decoders/Makefile.in
@@ -294,6 +294,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -378,6 +379,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/decoders/Netcdf.cc b/src/decoders/Netcdf.cc
index ef19eee..a912881 100644
--- a/src/decoders/Netcdf.cc
+++ b/src/decoders/Netcdf.cc
@@ -51,25 +51,7 @@ Convertor<From,To>::Convertor(NetVariable& var) : variable_(var)
add_offset_ = variable_.getAttribute("add_offset", offset);
}
-/*
-template <class T>
-void Accessor<T>::access(vector<T>& data, vector<long> start, vector<long> edges, NetVariable& var)
-{
- typename map<NcType, Accessor<T>*>::const_iterator accessor = accessors_->find(var.id_->type());
- if ( accessor == accessors_->end() ) throw new MagicsException("No accessor available");
-
- (*(*accessor).second)(data, start, edges, var);
-}
-*/
-//template <class T>
-//void Accessor<T>::access(vector<T>& data, NetDimension& dim)
-//{
-// typename map<NcType, Accessor<T>*>::const_iterator accessor = accessors_->find(var.id_->type());
-// if ( accessor == accessors_->end() ) throw new MagicsException("No accessor available");
-
-// (*(*accessor).second)(data, dim);
-//}
template <class F, class T>
void TypedAccessor<F,T>::operator() (vector<T>& to, vector<long>& start, vector<long>& edges, NetVariable& var) const
@@ -282,6 +264,13 @@ NetVariable::NetVariable(const string& name, NcVar* id, const NcFile& file): nam
attributes_[att->name()] = NetAttribute(att->name(), att);
}
}
+double NetVariable::getDefaultMissing()
+{
+
+ if (id_->type() == ncDouble)
+ return NC_FILL_DOUBLE;
+ return NC_FILL_FLOAT;
+}
namespace magics {
template<> map<NcType, Accessor<double>*>* Accessor<double>::accessors_ = 0;
diff --git a/src/decoders/Netcdf.h b/src/decoders/Netcdf.h
index fdd215a..6a4cda3 100644
--- a/src/decoders/Netcdf.h
+++ b/src/decoders/Netcdf.h
@@ -233,6 +233,8 @@ struct NetVariable
}
+ double getDefaultMissing();
+
template <class T>
void get(vector<T>& vals, map<string, string> first, map<string, string> last)
{
@@ -274,6 +276,12 @@ public:
typedef map<string, NetVariable> VariableMap;
+ double getDefaultMissing(const string& name)
+ {
+ map<string, NetVariable>::iterator var = variables_.find(name);
+ if ( var == variables_.end() ) throw NoSuchNetcdfVariable(name);
+ return var->second.getDefaultMissing();
+ }
template <class T>
void get(const string& name, vector<T>& vals,
@@ -285,7 +293,8 @@ public:
if ( var == variables_.end() ) throw NoSuchNetcdfVariable(name);
(*var).second.get(vals, first, last);
}
-
+
+
template <class T>
void get(const string& name, vector<T>& vals)
{
diff --git a/src/decoders/NetcdfDecoderAttributes.h b/src/decoders/NetcdfDecoderAttributes.h
index b10a6d4..d5ba6e0 100644
--- a/src/decoders/NetcdfDecoderAttributes.h
+++ b/src/decoders/NetcdfDecoderAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/NetcdfGeoMatrixInterpretor.cc b/src/decoders/NetcdfGeoMatrixInterpretor.cc
index ed292eb..fc52545 100644
--- a/src/decoders/NetcdfGeoMatrixInterpretor.cc
+++ b/src/decoders/NetcdfGeoMatrixInterpretor.cc
@@ -54,7 +54,11 @@ void NetcdfGeoMatrixInterpretor::interpretAsMatrix(Matrix** data)
Netcdf netcdf(path_);
- double missing_value = missing(netcdf);
+
+ double missing_value = netcdf.getDefaultMissing(field_);
+
+ missing_value = netcdf.getVariableAttribute(field_, missing_attribute_, missing_value);
+
// get the data ...
try
@@ -148,7 +152,7 @@ void NetcdfGeoMatrixInterpretor::interpretAsPoints(PointsList& list)
if ( values[val] < suppress_below_ ) continue;
if ( values[val] > suppress_above_ ) continue;
if ( same(values[val], missing_value ) ) continue;
- list.push_back(new UserPoint(longitudes[lon],latitudes[lat],values[val]));
+ list.push_back(new UserPoint(longitudes[lon], latitudes[lat], (values[val]*scaling_) + offset_));
}
}
MagLog::dev()<< "everything ok" << endl;
diff --git a/src/decoders/NetcdfGeoMatrixInterpretorAttributes.h b/src/decoders/NetcdfGeoMatrixInterpretorAttributes.h
index 91afa17..69beab9 100644
--- a/src/decoders/NetcdfGeoMatrixInterpretorAttributes.h
+++ b/src/decoders/NetcdfGeoMatrixInterpretorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/NetcdfGeoPolarMatrixInterpretorAttributes.h b/src/decoders/NetcdfGeoPolarMatrixInterpretorAttributes.h
index 2e54eee..710e6c0 100644
--- a/src/decoders/NetcdfGeoPolarMatrixInterpretorAttributes.h
+++ b/src/decoders/NetcdfGeoPolarMatrixInterpretorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/NetcdfGeoVectorInterpretorAttributes.h b/src/decoders/NetcdfGeoVectorInterpretorAttributes.h
index 56f0232..6be49b5 100644
--- a/src/decoders/NetcdfGeoVectorInterpretorAttributes.h
+++ b/src/decoders/NetcdfGeoVectorInterpretorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/NetcdfGeopointsInterpretorAttributes.h b/src/decoders/NetcdfGeopointsInterpretorAttributes.h
index 27b9011..c34cf4b 100644
--- a/src/decoders/NetcdfGeopointsInterpretorAttributes.h
+++ b/src/decoders/NetcdfGeopointsInterpretorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/NetcdfInterpretorAttributes.h b/src/decoders/NetcdfInterpretorAttributes.h
index 11946c9..5dca2d6 100644
--- a/src/decoders/NetcdfInterpretorAttributes.h
+++ b/src/decoders/NetcdfInterpretorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/NetcdfMatrixInterpretor.cc b/src/decoders/NetcdfMatrixInterpretor.cc
index 0149eb8..5715074 100644
--- a/src/decoders/NetcdfMatrixInterpretor.cc
+++ b/src/decoders/NetcdfMatrixInterpretor.cc
@@ -62,6 +62,7 @@ void NetcdfMatrixInterpretor::interpretAsMatrix(Matrix** matrix)
matrix_->missing(std::numeric_limits<double>::max());
Netcdf netcdf(path_);
+ matrix_->missing(netcdf.getDefaultMissing(field_));
string title = netcdf.getAttribute("title", "NO TITLE");
@@ -69,12 +70,36 @@ void NetcdfMatrixInterpretor::interpretAsMatrix(Matrix** matrix)
y();
// get the data ...
try {
+ string missing = netcdf.getVariableAttribute(field_, missing_attribute_, "");
+ if ( !missing.empty() ) {
+ std::stringstream ss(missing);
+ double m;
+ ss >> m;
+ matrix_->missing(m);
+ }
+
map<string, string> first, last;
setDimensions(dimension_, first, last);
- MagLog::debug() << "matrix_" << matrix_->size() << "\n";
-
- netcdf.get(field_, *matrix_, first, last);
+ vector<double> rows = dateRows_.empty() ? rows_ : dateRows_;
+ for ( vector<double>::iterator r = rows.begin(); r != rows.end(); r++) {
+ vector<string> dims;
+ ostringstream x,y;
+ x.precision(20);
+ y.precision(20);
+ y << y_ << "/" << *r;
+ x << x_ << "/" << columns_.front() << "/" << columns_.back();
+ dims.push_back(y.str());
+ dims.push_back(x.str());
+ setDimensions(dims, first, last);
+ vector<double> data;
+ netcdf.get(field_, data, first, last);
+ for ( vector<double>::iterator d = data.begin(); d != data.end(); d++) {
+ matrix_->push_back(*d);
+ }
+
+ }
+
MagLog::debug() << "matrix_[" << matrix_->size() << ", " << scaling_ << ", " << offset_ << "]" << "\n";
matrix_->multiply(scaling_);
@@ -87,13 +112,6 @@ void NetcdfMatrixInterpretor::interpretAsMatrix(Matrix** matrix)
vector<double> col;
- string missing = netcdf.getVariableAttribute(field_, missing_attribute_, "");
- if ( !missing.empty() ) {
- std::stringstream ss(missing);
- double m;
- ss >> m;
- matrix_->missing(m);
- }
matrix_->setColumnsAxis(columns_);
@@ -123,7 +141,7 @@ void NetcdfMatrixInterpretor::print(ostream& out) const
-bool NetcdfMatrixInterpretor::reference_date(Netcdf& netcdf, const string& var, const string& refdate, string& basedate, vector<double>& coords)
+bool NetcdfMatrixInterpretor::reference_date(Netcdf& netcdf, const string& var, const string& refdate, string& basedate, vector<double>& coords, vector<double>& originals)
{
static map<string, double> factors;
if ( factors.empty() ) {
@@ -132,6 +150,9 @@ bool NetcdfMatrixInterpretor::reference_date(Netcdf& netcdf, const string& var,
}
string date = netcdf.getVariableAttribute(var, "reference_date", "");
if ( date.empty() ) return false;
+ originals.reserve(coords.size());
+ for (vector<double>::iterator c = coords.begin(); c != coords.end(); ++c)
+ originals.push_back(*c);
string units = netcdf.getVariableAttribute(var, "units", "");
basedate = date;
double diff = ( refdate.empty() ) ? 0 : DateTime(date) - DateTime(refdate) ;
@@ -141,7 +162,7 @@ bool NetcdfMatrixInterpretor::reference_date(Netcdf& netcdf, const string& var,
std::transform(coords.begin(), coords.end(), coords.begin(), Plus(diff, std::numeric_limits<double>::max()));
}
-bool NetcdfMatrixInterpretor::cf_date(Netcdf& netcdf, const string& var, const string& refdate, string& basedate, vector<double>& coords)
+bool NetcdfMatrixInterpretor::cf_date(Netcdf& netcdf, const string& var, const string& refdate, string& basedate, vector<double>& coords, vector<double>& originals)
{
//Step 1 : try to find a attribute long_name = time
//Step 2 : Parse the attribute units : days since date
@@ -156,6 +177,9 @@ bool NetcdfMatrixInterpretor::cf_date(Netcdf& netcdf, const string& var, const s
string units = netcdf.getVariableAttribute(var, "units", "");
if ( units.empty() ) return false;
+ originals.reserve(coords.size());
+ for (vector<double>::iterator c = coords.begin(); c != coords.end(); ++c)
+ originals.push_back(*c);
// Now we parse the string !
vector<string> tokens;
@@ -184,8 +208,8 @@ void NetcdfMatrixInterpretor::x()
try {
netcdf.get(x_, columns_, first, last);
baseDateX_ = "";
- if ( !reference_date(netcdf, x_, refDateX_, baseDateX_, columns_) )
- cf_date(netcdf, x_, refDateX_, baseDateX_, columns_);
+ if ( !reference_date(netcdf, x_, refDateX_, baseDateX_, columns_, dateColumns_) )
+ cf_date(netcdf, x_, refDateX_, baseDateX_, columns_, dateColumns_);
}
catch (...) {
int x = netcdf.getDimension(x_);
@@ -223,9 +247,10 @@ void NetcdfMatrixInterpretor::y()
setDimensions(dimension_, first, last);
try {
netcdf.get(y_, rows_, first, last);
+
baseDateY_ = "";
- if ( !reference_date(netcdf, y_, refDateY_, baseDateY_, rows_) )
- cf_date(netcdf, y_, refDateY_, baseDateY_, rows_);
+ if ( !reference_date(netcdf, y_, refDateY_, baseDateY_, rows_, dateRows_) )
+ cf_date(netcdf, y_, refDateY_, baseDateY_, rows_, dateRows_);
}
catch (...) {
int y = netcdf.getDimension(y_);
@@ -253,10 +278,10 @@ void NetcdfMatrixInterpretor::getReady(const Transformation& transformation)
{
// adjust the data to the transformation..
- refDateX_ = ( !transformation.getAutomaticX() ) ? "" : transformation.getReferenceX();
+ refDateX_ = transformation.getReferenceX(); //( transformation.getAutomaticX() ) ? "" : transformation.getReferenceX();
columns_.clear();
x();
- refDateY_ = ( !transformation.getAutomaticY() ) ? "" : transformation.getReferenceY();
+ refDateY_ = transformation.getReferenceY(); //( transformation.getAutomaticY() ) ? "" : transformation.getReferenceY();
rows_.clear();
y();
diff --git a/src/decoders/NetcdfMatrixInterpretor.h b/src/decoders/NetcdfMatrixInterpretor.h
index cebdc56..55c500c 100644
--- a/src/decoders/NetcdfMatrixInterpretor.h
+++ b/src/decoders/NetcdfMatrixInterpretor.h
@@ -92,9 +92,9 @@ public:
virtual void statsData(map<string,vector<double> >&);
virtual void x();
virtual void y();
- bool cf_date(Netcdf& netcdf, const string&, const string&, string&, vector<double>&);
+ bool cf_date(Netcdf& netcdf, const string&, const string&, string&, vector<double>&, vector<double>&);
//return true, if the the data is date CF-compliant and the date axis has been set
- bool reference_date(Netcdf& netcdf, const string&, const string&, string&, vector<double>&);
+ bool reference_date(Netcdf& netcdf, const string&, const string&, string&, vector<double>&, vector<double>&);
//return true, if the the data is Metview-date compliant and the date axis has been set
protected:
//! Method to print string about this class on to a stream of type ostream (virtual).
@@ -102,7 +102,8 @@ protected:
Matrix* matrix_;
vector<double> columns_;
vector<double> rows_;
-
+ vector<double> dateRows_; // Used when dealing with date dimensions to store the original values
+ vector<double> dateColumns_; // Used when dealing with date dimensions to store the original values
string baseDateX_;
string baseDateY_;
string geoMinX_;
diff --git a/src/decoders/NetcdfMatrixInterpretorAttributes.h b/src/decoders/NetcdfMatrixInterpretorAttributes.h
index 1738d1e..3247746 100644
--- a/src/decoders/NetcdfMatrixInterpretorAttributes.h
+++ b/src/decoders/NetcdfMatrixInterpretorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/NetcdfVectorInterpretorAttributes.h b/src/decoders/NetcdfVectorInterpretorAttributes.h
index f5140f9..a4e02d9 100644
--- a/src/decoders/NetcdfVectorInterpretorAttributes.h
+++ b/src/decoders/NetcdfVectorInterpretorAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/ObsDecoderAttributes.h b/src/decoders/ObsDecoderAttributes.h
index 18dcc1f..ae8466c 100644
--- a/src/decoders/ObsDecoderAttributes.h
+++ b/src/decoders/ObsDecoderAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:23 2013
*/
diff --git a/src/decoders/ObsStatDecoderAttributes.h b/src/decoders/ObsStatDecoderAttributes.h
index 55cad96..21939e2 100644
--- a/src/decoders/ObsStatDecoderAttributes.h
+++ b/src/decoders/ObsStatDecoderAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:20 2013
*/
diff --git a/src/drivers/BaseDriverSymbols.h b/src/drivers/BaseDriverSymbols.h
index fe91657..fbe3b0b 100644
--- a/src/drivers/BaseDriverSymbols.h
+++ b/src/drivers/BaseDriverSymbols.h
@@ -143,17 +143,17 @@ MAGICS_NO_EXPORT void BaseDriver::renderTextSymbols(const TextSymbol& symbol) co
}
else if( symbol.position() == Symbol::M_LEFT )
{
- shiftX = convertCM(symbol.getHeight()*.5)/coordRatioX_;
+ shiftX = -convertCM(symbol.getHeight()*.5)/coordRatioX_;
text.setJustification(MRIGHT);
}
else if( symbol.position() == Symbol::M_BELOW )
{
- shiftY = -convertCM(symbol.getHeight()*.6)/coordRatioY_;
+ shiftY = setY(-convertCM(symbol.getHeight()*.6)/coordRatioY_);
text.setVerticalAlign(MTOP);
}
else if( symbol.position() == Symbol::M_ABOVE )
{
- shiftY = convertCM(symbol.getHeight()*1.0)/coordRatioY_;
+ shiftY = setY(convertCM(symbol.getHeight()*0.8)/coordRatioY_);
text.setVerticalAlign(MBOTTOM);
}
diff --git a/src/drivers/Makefile.in b/src/drivers/Makefile.in
index 1bc80c0..533f474 100644
--- a/src/drivers/Makefile.in
+++ b/src/drivers/Makefile.in
@@ -275,6 +275,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -359,6 +360,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/drivers/PostScriptDriver.cc b/src/drivers/PostScriptDriver.cc
index 009619b..af4ecc5 100644
--- a/src/drivers/PostScriptDriver.cc
+++ b/src/drivers/PostScriptDriver.cc
@@ -1076,8 +1076,13 @@ MAGICS_NO_EXPORT void PostScriptDriver::renderText(const Text& text) const
if(u>1)
{
- *ps <<"gs "<< x0 << " " << y0 << " t ("<< all_text.str() << ") stringwidth pop HA mul VA Height mul moveto "
- << "("<<tmp.str()<< ") "<<showCommand<<"\n";
+ const MFloat an = 360.-(text.getAngle()*57.29577951);
+ if(an==0 || an==360)
+ *ps <<"gs "<< x0 << " " << y0 << " t ("<< all_text.str() << ") stringwidth pop HA mul VA Height mul moveto "
+ << "("<<tmp.str()<< ") "<<showCommand<<"\n";
+ else
+ *ps <<"gs "<< x0 << " " << y0 << " t "<<an<< " ro ("<< all_text.str() << ") stringwidth pop HA mul VA Height mul moveto "
+ << "("<<tmp.str()<< ") "<<showCommand<<"\n";
}
else
{
diff --git a/src/drivers/QtDriver.cc b/src/drivers/QtDriver.cc
index e2b91e9..620ef1e 100644
--- a/src/drivers/QtDriver.cc
+++ b/src/drivers/QtDriver.cc
@@ -1162,61 +1162,56 @@ MAGICS_NO_EXPORT void QtDriver::renderText(const Text& text) const
}
}
- //If all the text items has the same font ....
- if(sameFontForItems)
- {
- const MagFont magfont=magfontFirst;
- const std::set<string>& styles = magfont.styles();
-
- pheight = 72.*magfont.size()/2.54; //height in points
- pheight/=dpiResolutionRatio_;
- pheight*=fontSizeFactor_;
-
- QFont font(QString::fromStdString(magfont.name()), pheight);
- font.setPointSizeF(pheight);
+ //Loop for all string CO-ORDINATES
+ unsigned int noTexts = text.size();
+ for(unsigned int nT=0;nT<noTexts;nT++)
+ {
+ const MFloat x0 = projectX(text[nT].x());
+ const MFloat y0 = projectY(text[nT].y());
+ const MFloat an = text.getAngle()*57.29577951;
+
+ //----------------------------------------------
+ // If all the text items have the same font ....
+ //----------------------------------------------
- if (styles.find("underlined") != styles.end()) font.setUnderline(true);
- if(styles.find("bold") != styles.end()) font.setBold(true);
- if(styles.find("italic") != styles.end()) font.setItalic(true);
+ if(sameFontForItems)
+ {
+ const MagFont magfont=magfontFirst;
+ const std::set<string>& styles = magfont.styles();
- QString allText;
- for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)
- {
- QString str;
- textToUnicode((*niceText).text(),str);
- allText+=str;
- }
+ pheight = 72.*magfont.size()/2.54; //height in points
+ pheight/=dpiResolutionRatio_;
+ pheight*=fontSizeFactor_;
+
+ QFont font(QString::fromStdString(magfont.name()), pheight);
+ font.setPointSizeF(pheight);
+
+ if (styles.find("underlined") != styles.end()) font.setUnderline(true);
+ if(styles.find("bold") != styles.end()) font.setBold(true);
+ if(styles.find("italic") != styles.end()) font.setItalic(true);
+
+ QString allText;
+ for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)
+ {
+ QString str;
+ textToUnicode((*niceText).text(),str);
+ allText+=str;
+ }
+
+ QFontMetrics fm(font);
+ int width = fm.width(allText);
+ int height = fm.height();
- QFontMetrics fm(font);
- int width = fm.width(allText);
- int height = fm.height();
-
- MFloat x = 0;
- if(horizontal == MCENTRE) x = width*.5;
- else if(horizontal == MRIGHT) x = width;
-
- MFloat y = 0.;
- if (vertical==MBASE) { y = height;}
- else if (vertical==MTOP) { y = 0.;}
- else if (vertical==MHALF) { y = height*.5;}
- else if (vertical==MBOTTOM) { y = height;}
-
- unsigned int noTexts = text.size();
- for(unsigned int nT=0;nT<noTexts;nT++) // for all string CO-ORDINATES
- {
- const MFloat x0 = projectX(text[nT].x());
- const MFloat y0 = projectY(text[nT].y());
- const MFloat an = text.getAngle()*57.29577951;
-
- //for debugging: Uncomment this to render red a circle to the text position!
- /*
- {
- QGraphicsEllipseItem *item=new QGraphicsEllipseItem(-2,-2,4,4);
- item->setBrush(Qt::red);
- item->setParentItem(currentItem_);
- item->setPos(x0,y0);
- }*/
+ MFloat x = 0;
+ if(horizontal == MCENTRE) x = width*.5;
+ else if(horizontal == MRIGHT) x = width;
+ MFloat y = 0.;
+ if (vertical==MBASE) { y = height;}
+ else if (vertical==MTOP) { y = 0.;}
+ else if (vertical==MHALF) { y = height*.5;}
+ else if (vertical==MBOTTOM) { y = height;}
+
//Create the item
MgQTextItem *item= new MgQTextItem(allText);
item->setParentItem(currentItem_);
@@ -1245,52 +1240,70 @@ MAGICS_NO_EXPORT void QtDriver::renderText(const Text& text) const
item->setPos(x0,y0);
}
- }
-
- //If the text item fonts differ ...
- else
- {
- //Loop for the indidual text items
- for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)
- {
- const MagFont magfont = niceText->font();
-
- const std::set<string>& styles = magfont.styles();
-
- pheight = 72.*magfont.size()/2.54; //height in points
- pheight/=dpiResolutionRatio_;
- pheight*=fontSizeFactor_;
- QFont font(QString::fromStdString(magfont.name()), pheight);
- font.setPointSizeF(pheight);
- if (styles.find("underlined") != styles.end()) font.setUnderline(true);
- if(styles.find("bold") != styles.end()) font.setBold(true);
- if(styles.find("italic") != styles.end()) font.setItalic(true);
-
- QString str;
- textToUnicode((*niceText).text(),str);
- //QString str = QString::fromStdString((*niceText).text());
-
- QFontMetrics fm(font);
- int width = fm.width(str);
- int height = fm.height();
+ //--------------------------------------
+ // If the text item fonts differ ...
+ //--------------------------------------
+
+ else
+ {
+ //Find out text width
+ int totalWidth=0;
+ for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)
+ {
+ const MagFont magfont = niceText->font();
+ const std::set<string>& styles = magfont.styles();
- MFloat x = 0;
- if(horizontal == MCENTRE) x = width*.5;
- else if(horizontal == MRIGHT) x = width;
+ pheight = 72.*magfont.size()/2.54; //height in points
+ pheight/=dpiResolutionRatio_;
+ pheight*=fontSizeFactor_;
+
+ QFont font(QString::fromStdString(magfont.name()), pheight);
+ font.setPointSizeF(pheight);
+ if (styles.find("underlined") != styles.end()) font.setUnderline(true);
+ if(styles.find("bold") != styles.end()) font.setBold(true);
+ if(styles.find("italic") != styles.end()) font.setItalic(true);
+
+ QString str;
+ textToUnicode((*niceText).text(),str);
+
+ QFontMetrics fm(font);
+ totalWidth+=fm.width(str);
+ }
+
+ //Find out text start position
+ int xPos=x0;;
+ if(horizontal == MCENTRE) xPos-=totalWidth*.5;
+ else if(horizontal == MRIGHT) xPos-=totalWidth;
+
+ //Loop for the indidual text items
+ for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)
+ {
+ const MagFont magfont = niceText->font();
+ const std::set<string>& styles = magfont.styles();
+
+ pheight = 72.*magfont.size()/2.54; //height in points
+ pheight/=dpiResolutionRatio_;
+ pheight*=fontSizeFactor_;
+
+ QFont font(QString::fromStdString(magfont.name()), pheight);
+ font.setPointSizeF(pheight);
+ if (styles.find("underlined") != styles.end()) font.setUnderline(true);
+ if(styles.find("bold") != styles.end()) font.setBold(true);
+ if(styles.find("italic") != styles.end()) font.setItalic(true);
+
+ QString str;
+ textToUnicode((*niceText).text(),str);
+
+ QFontMetrics fm(font);
+ int width = fm.width(str);
+ int height = fm.height();
- MFloat y = 0.;
- if (vertical==MBASE) { y = height;}
- else if (vertical==MTOP) { y = 0.;}
- else if (vertical==MHALF) { y = height*.5;}
- else if (vertical==MBOTTOM) { y = height;}
-
- unsigned int noTexts = text.size();
- for(unsigned int nT=0;nT<noTexts;nT++) // for all string CO-ORDINATES
- {
- const MFloat x0 = projectX(text[nT].x());
- const MFloat y0 = projectY(text[nT].y());
- const MFloat an = text.getAngle()*57.29577951;
+ MFloat y = 0.;
+ if (vertical==MBASE) { y = height;}
+ else if (vertical==MTOP) { y = 0.;}
+ else if (vertical==MHALF) { y = height*.5;}
+ else if (vertical==MBOTTOM) { y = height;}
//Create the item
MgQTextItem *item= new MgQTextItem(str);
@@ -1306,17 +1319,19 @@ MAGICS_NO_EXPORT void QtDriver::renderText(const Text& text) const
}
item->setPos(x0,y0);
+
+ if(an !=0 && an != 360)
+ item->rotate(an);
+
QTransform tr;
tr.scale(1.,-1.);
- tr.translate(-x,-y);
+ tr.translate(xPos-x0,-y);
item->setTransform(tr);
- if(an !=0 && an != 360)
- item->rotate(an);
+ xPos+=width;
}
- }
- }
-
+ }
+ }
}
// \brief Convert std::string to unicode QString
diff --git a/src/libMagWrapper/Makefile.in b/src/libMagWrapper/Makefile.in
index 3ff72a9..0e30d9b 100644
--- a/src/libMagWrapper/Makefile.in
+++ b/src/libMagWrapper/Makefile.in
@@ -315,6 +315,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -399,6 +400,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/libTable/Makefile.in b/src/libTable/Makefile.in
index fb616dd..1e34bcd 100644
--- a/src/libTable/Makefile.in
+++ b/src/libTable/Makefile.in
@@ -150,6 +150,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -234,6 +235,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/magics_config.h b/src/magics_config.h
index bdd4103..ad474dc 100644
--- a/src/magics_config.h
+++ b/src/magics_config.h
@@ -63,7 +63,7 @@
/* #undef MAGICS_32BIT */
/* Install all header files. */
-/* #undef MAGICS_ALLHEADERS */
+#define MAGICS_ALLHEADERS 1
/* Turn off the BUFR support */
#define MAGICS_BUFR 1
@@ -72,7 +72,7 @@
#define MAGICS_CAIRO 1
/* Period of Copyright. */
-#define MAGICS_COPYRIGHT_PERIOD "2007-2012"
+#define MAGICS_COPYRIGHT_PERIOD "2007-2013"
/* Turn on the use of Exceptions (not recommended used by Static library!) */
#define MAGICS_EXCEPTION 1
@@ -87,7 +87,7 @@
#define MAGICS_GRIB 1
/* Install path. */
-#define MAGICS_INSTALL_PATH "/usr/local/apps/Magics/2.18.7"
+#define MAGICS_INSTALL_PATH "/usr/local/apps/Magics/2.18.15"
/* Turn on the JSON support */
#define MAGICS_JSON 1
@@ -108,7 +108,7 @@
#define MAGICS_METGRAM 1
/* Installation used by metview */
-/* #undef MAGICS_METVIEW */
+#define MAGICS_METVIEW 1
/* Name of this package. */
#define MAGICS_NAME "Magics"
@@ -129,13 +129,13 @@
#define MAGICS_PYTHON 1
/* Turn on Qt related modules. */
-/* #undef MAGICS_QT */
+#define MAGICS_QT 1
/* Turn on raster file format support (GIF&PNG) */
#define MAGICS_RASTER 1
/* Release date of this version. */
-#define MAGICS_RELEASE_DATE "05-December-2012"
+#define MAGICS_RELEASE_DATE "15-April-2013"
/* Name of installation site. */
#define MAGICS_SITE "ecmwf"
@@ -156,7 +156,7 @@
#define MAGICS_TTF_PATH "share/magics/ttf/"
/* Version of Magics. */
-#define MAGICS_VERSION "2.18.7"
+#define MAGICS_VERSION "2.18.15"
/* Sets visibility flags. */
/* #undef MAGICS_VISIBILITY */
diff --git a/src/magics_ecmwf_log.h b/src/magics_ecmwf_log.h
index d614de3..c6df40f 100644
--- a/src/magics_ecmwf_log.h
+++ b/src/magics_ecmwf_log.h
@@ -45,7 +45,7 @@ inline MAGICS_NO_EXPORT void writeMagLog(const std::string &interface)
{
string id = getEnvVariable("USER"); //user-id
- if(! (id=="cgm" || id=="cgs" || id=="cgi" || id=="cgk" || id=="cgr" ) )
+ if(! (id=="cgm" || id=="cgs" || id=="cgi" || id=="cgk" || id=="cgr" || id=="cgjd" ) )
{
char host[64];
char mytime[24];
diff --git a/src/oda/Makefile.in b/src/oda/Makefile.in
index 2aa8045..b7beada 100644
--- a/src/oda/Makefile.in
+++ b/src/oda/Makefile.in
@@ -154,6 +154,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -238,6 +239,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/oda/OdaDecoder.cc b/src/oda/OdaDecoder.cc
index 316ca39..fde64ba 100644
--- a/src/oda/OdaDecoder.cc
+++ b/src/oda/OdaDecoder.cc
@@ -31,9 +31,9 @@
#include <map>
#include <set>
-#include "oda.h"
+#include "odblib/oda.h"
extern "C" {
-#include "odbcapi.h"
+#include "odblib/odbcapi.h"
}
diff --git a/src/terralib/Makefile.in b/src/terralib/Makefile.in
index 3c2edac..baf2402 100644
--- a/src/terralib/Makefile.in
+++ b/src/terralib/Makefile.in
@@ -322,6 +322,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -406,6 +407,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/visualisers/Akima474MethodAttributes.h b/src/visualisers/Akima474MethodAttributes.h
index 05c706d..4e163cc 100644
--- a/src/visualisers/Akima474MethodAttributes.h
+++ b/src/visualisers/Akima474MethodAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/Akima760.cc b/src/visualisers/Akima760.cc
index ecbe8c9..4af3343 100644
--- a/src/visualisers/Akima760.cc
+++ b/src/visualisers/Akima760.cc
@@ -1394,19 +1394,19 @@ void Akima760::boundRow(double r, double& row1, int& index1, double& row2, int&
// first test if increasing!
if ( rows_.back() - rows_.front() > 0 ) {
index2 = 0;
- while ( rows_[index2] < r ) {
+ while ( index2 < rows_.size() && rows_[index2] < r ) {
index2++;
}
- index1 = index2-1;
+ index1 = (index2) ? index2-1 : 0;
row1 = rows_[index1];
row2 = rows_[index2];
}
else {
index1 = 0;
- while ( rows_[index1] > r ) {
+ while ( index1 < rows_.size() && rows_[index1] > r ) {
index1++;
}
- index2 = index1+1;
+ index2 = (index1 == rows_.size() -1 ) ? index1 : index1+1;
row1 = rows_[index1];
row2 = rows_[index2];
}
@@ -1422,22 +1422,22 @@ void Akima760::boundColumn(double r, double& column1, int& index1, double& colum
if ( columns_.back() - columns_.front() > 0 )
{
index2 = 0;
- while ( columns_[index2] < r )
+ while ( index2 < columns_.size() && columns_[index2] < r )
{
index2++;
}
- index1 = index2-1;
+ index1 = (index2) ? index2-1 : 0;
column1 = columns_[index1];
column2 = columns_[index2];
}
else {
index1 = 0;
- while ( columns_[index1] > r )
+ while ( index1 < columns_.size() && columns_[index1] > r )
{
index1++;
}
- index2 = index1+1;
+ index2 = (index1 == columns_.size() -1 ) ? index1 : index1+1;
column1 = columns_[index1];
- column2 = rows_[index2];
+ column2 = columns_[index2];
}
}
diff --git a/src/visualisers/Akima760MethodAttributes.h b/src/visualisers/Akima760MethodAttributes.h
index ad7c44c..ad1219e 100644
--- a/src/visualisers/Akima760MethodAttributes.h
+++ b/src/visualisers/Akima760MethodAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/AxisAttributes.cc b/src/visualisers/AxisAttributes.cc
index 02d6f70..d40e0e0 100644
--- a/src/visualisers/AxisAttributes.cc
+++ b/src/visualisers/AxisAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "AxisAttributes.h"
diff --git a/src/visualisers/AxisAttributes.h b/src/visualisers/AxisAttributes.h
index 872311e..781aacd 100644
--- a/src/visualisers/AxisAttributes.h
+++ b/src/visualisers/AxisAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
diff --git a/src/visualisers/AxisMethod.cc b/src/visualisers/AxisMethod.cc
index a44d3ac..0b46f28 100644
--- a/src/visualisers/AxisMethod.cc
+++ b/src/visualisers/AxisMethod.cc
@@ -126,16 +126,24 @@ void HyperAxisMethod::prepare(const Axis& axis, AxisItems& items)
int nb = 7;
double step;
double log, ws;
+ bool horizontal = false;
double min = hyperMin_.front();
double max = hyperMax_.front();
-
double wmax = std::max(hyperMin_.front(), hyperMax_.front());
double wmin = std::min(hyperMin_.front(), hyperMax_.front());
+ if ( wmin==wmax) {
+ wmax = std::max(hyperMin_.back(), hyperMax_.back());
+ wmin = std::min(hyperMin_.back(), hyperMax_.back());
+ min = hyperMin_.back();
+ max = hyperMax_.back();
+ horizontal = true;
+ }
+
if (axis.interval_ == INT_MAX ) {
- while (nb < 20) {
+ while (nb < 10) {
step = (wmax-wmin)/nb;
log = log10(step);
ws = pow(10., int(log));
@@ -155,18 +163,19 @@ void HyperAxisMethod::prepare(const Axis& axis, AxisItems& items)
inc = axis.interval_;
}
std::set<double> list;
- //list.insert(value(min));
- //ist.insert(value(max));
+
if ( min < max ) {
double first = floor(min/inc) *inc;
double last = 0.;
- for (double val = first; val <= max; val+=inc) {
+ int i = 0;
+ for (double val = first; val <= max; val = first + (inc*i) ) {
if (val >= min && val <=max) {
list.insert(value(val));
last = val;
}
+ i++;
}
list.insert(value(last+inc));
@@ -174,11 +183,13 @@ void HyperAxisMethod::prepare(const Axis& axis, AxisItems& items)
else {
double first = floor(min/inc) *inc;
double last = 0.;
- for (double val = first; val >= max; val-=inc) {
+ int i = 0;
+ for (double val = first; val >= max; val = first - ( inc * i) ) {
if (val >= wmin && val <= wmax) {
list.insert(value(val));
last = val;
}
+ i++;
}
list.insert(value(last-inc));
}
@@ -192,10 +203,19 @@ void HyperAxisMethod::prepare(const Axis& axis, AxisItems& items)
for (std::set<double>::iterator i = list.begin(); i != list.end(); ++i) {
vector<double> val;
- val.push_back(*i);
- double j = jmin+((*i)-imin)*(jw/iw);
- val.push_back(j);
- items.push_back( new AxisHyperItem(*i, val));
+ if ( horizontal ) {
+ val.push_back(imin);
+
+ val.push_back(*i);
+ items.push_back( new AxisHyperItem(*i, val));
+ }
+ else {
+
+ val.push_back(*i);
+ double j = jmin+((*i)-imin)*(jw/iw);
+ val.push_back(j);
+ items.push_back( new AxisHyperItem(*i, val));
+ }
}
}
@@ -213,6 +233,7 @@ void AxisMethod::prepare(const Axis& axis, AxisItems& items)
double wmax = std::max(min, max);
double wmin = std::min(min, max);
+
bool automatic = false;
if (axis.interval_ == INT_MAX ) {
@@ -242,23 +263,29 @@ void AxisMethod::prepare(const Axis& axis, AxisItems& items)
{
double first = floor(min/inc) *inc;
double last = 0.;
- for (double val = first; val <= max; val+=inc) {
+ int i = 0;
+ for (double val = first; val <= max; val = first + (i*inc) ) {
if (val >= min && val <=max) {
list.insert(value(val));
last = val;
+
}
+ i++;
}
list.insert(value(last+inc));
+
}
else
{
- double first = floor(min/inc) *inc;
+ double first = floor(min/inc) * inc;
double last = 0.;
- for (double val = first; val >= max; val-=inc) {
+ int i = 0;
+ for (double val = first; val >= max; val = first - (i*inc)) {
if (val >= wmin && val <= wmax) {
list.insert(value(val));
last = val;
}
+ i++;
}
list.insert(value(last-inc));
}
@@ -306,6 +333,8 @@ void AxisMethod::updateX(const Transformation& transformation)
min_ = transformation.getMinX();
max_ = transformation.getMaxX();
+
+
}
void AxisMethod::updateY(const Transformation& transformation)
diff --git a/src/visualisers/AxisMethodAttributes.cc b/src/visualisers/AxisMethodAttributes.cc
index e2cb71e..f6dab02 100644
--- a/src/visualisers/AxisMethodAttributes.cc
+++ b/src/visualisers/AxisMethodAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "AxisMethodAttributes.h"
diff --git a/src/visualisers/Bar.cc b/src/visualisers/Bar.cc
index bd7c88e..c69d623 100644
--- a/src/visualisers/Bar.cc
+++ b/src/visualisers/Bar.cc
@@ -258,11 +258,12 @@ void GraphFlag::print(ostream& out) const
void GraphFlag::operator()(Data& data, BasicGraphicsObjectContainer& out)
{
+ const Transformation& transformation = out.transformation();
CustomisedPointsList points;
std::set<string> request;
request.insert("intensity");
request.insert("direction");
- data.customisedPoints(out.transformation(), request, points, true);
+ data.customisedPoints(transformation, request, points, true);
if (points.empty() ) return;
@@ -292,9 +293,11 @@ void GraphFlag::operator()(Data& data, BasicGraphicsObjectContainer& out)
direction = (**point)["direction"];
if ( intensity == missing || direction == missing)
continue;
- PaperPoint pos(x, y);
- flags->push_back(ArrowPoint(intensity, direction, pos));
- flags->back().set(intensity, direction);
+ UserPoint pos(x, y);
+ if ( transformation.in(pos) ) {
+ flags->push_back(ArrowPoint(intensity, direction, transformation(pos)));
+ flags->back().set(intensity, direction);
+ }
}
}
if ( !flags->empty() ) out.push_back(flags);
@@ -346,11 +349,12 @@ void GraphArrow::print(ostream& out) const
void GraphArrow::operator()(Data& data, BasicGraphicsObjectContainer& out)
{
+ const Transformation& transformation = out.transformation();
CustomisedPointsList points;
std::set<string> request;
request.insert("intensity");
request.insert("direction");
- data.customisedPoints(out.transformation(), request, points, true);
+ data.customisedPoints(transformation, request, points, true);
Arrow* arrow = new Arrow();
arrow->setColour(*colour_);
@@ -374,9 +378,11 @@ void GraphArrow::operator()(Data& data, BasicGraphicsObjectContainer& out)
direction = (**point)["direction"];
if ( intensity == missing || direction == missing)
continue;
- PaperPoint pos(x, y);
- arrow->push_back(ArrowPoint(intensity, direction, pos));
- arrow->back().set(intensity, direction);
+ UserPoint pos(x, y);
+ if ( transformation.in(pos) ) {
+ arrow->push_back(ArrowPoint(intensity, direction, transformation(pos)));
+ arrow->back().set(intensity, direction);
+ }
}
}
if ( !arrow->empty() ) out.push_back(arrow);
diff --git a/src/visualisers/BothValuePlotMethodAttributes.cc b/src/visualisers/BothValuePlotMethodAttributes.cc
index fe48572..ee9e20e 100644
--- a/src/visualisers/BothValuePlotMethodAttributes.cc
+++ b/src/visualisers/BothValuePlotMethodAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
#include "BothValuePlotMethodAttributes.h"
diff --git a/src/visualisers/BoundariesAttributes.h b/src/visualisers/BoundariesAttributes.h
index da8fb9c..bf5ce02 100644
--- a/src/visualisers/BoundariesAttributes.h
+++ b/src/visualisers/BoundariesAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:20 2013
*/
diff --git a/src/visualisers/BoxPlotBoxAttributes.cc b/src/visualisers/BoxPlotBoxAttributes.cc
index 4509c26..10db6c8 100644
--- a/src/visualisers/BoxPlotBoxAttributes.cc
+++ b/src/visualisers/BoxPlotBoxAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "BoxPlotBoxAttributes.h"
diff --git a/src/visualisers/BoxPlotBoxBorderAttributes.cc b/src/visualisers/BoxPlotBoxBorderAttributes.cc
index 4e6b43e..ceac589 100644
--- a/src/visualisers/BoxPlotBoxBorderAttributes.cc
+++ b/src/visualisers/BoxPlotBoxBorderAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "BoxPlotBoxBorderAttributes.h"
diff --git a/src/visualisers/BoxPlotMedianAttributes.cc b/src/visualisers/BoxPlotMedianAttributes.cc
index 191d880..c88ee3d 100644
--- a/src/visualisers/BoxPlotMedianAttributes.cc
+++ b/src/visualisers/BoxPlotMedianAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "BoxPlotMedianAttributes.h"
diff --git a/src/visualisers/BoxPlotVisualiserAttributes.cc b/src/visualisers/BoxPlotVisualiserAttributes.cc
index 07a04f1..676dcd2 100644
--- a/src/visualisers/BoxPlotVisualiserAttributes.cc
+++ b/src/visualisers/BoxPlotVisualiserAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "BoxPlotVisualiserAttributes.h"
diff --git a/src/visualisers/BoxPlotWhiskerBorderAttributes.cc b/src/visualisers/BoxPlotWhiskerBorderAttributes.cc
index 421721c..e5da694 100644
--- a/src/visualisers/BoxPlotWhiskerBorderAttributes.cc
+++ b/src/visualisers/BoxPlotWhiskerBorderAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "BoxPlotWhiskerBorderAttributes.h"
diff --git a/src/visualisers/BoxPlotWhiskerBoxAttributes.cc b/src/visualisers/BoxPlotWhiskerBoxAttributes.cc
index 51c7f7d..6e4214a 100644
--- a/src/visualisers/BoxPlotWhiskerBoxAttributes.cc
+++ b/src/visualisers/BoxPlotWhiskerBoxAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "BoxPlotWhiskerBoxAttributes.h"
diff --git a/src/visualisers/BoxPlotWhiskerLineAttributes.cc b/src/visualisers/BoxPlotWhiskerLineAttributes.cc
index 13db4a5..a2dc146 100644
--- a/src/visualisers/BoxPlotWhiskerLineAttributes.cc
+++ b/src/visualisers/BoxPlotWhiskerLineAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "BoxPlotWhiskerLineAttributes.h"
diff --git a/src/visualisers/CalculateColourTechniqueAttributes.h b/src/visualisers/CalculateColourTechniqueAttributes.h
index 95c8f3b..d9005f0 100644
--- a/src/visualisers/CalculateColourTechniqueAttributes.h
+++ b/src/visualisers/CalculateColourTechniqueAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/CdfGraphAttributes.cc b/src/visualisers/CdfGraphAttributes.cc
index 2fcd359..eee0c34 100644
--- a/src/visualisers/CdfGraphAttributes.cc
+++ b/src/visualisers/CdfGraphAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "CdfGraphAttributes.h"
diff --git a/src/visualisers/CellShadingAttributes.h b/src/visualisers/CellShadingAttributes.h
index ed70501..9e0c9e2 100644
--- a/src/visualisers/CellShadingAttributes.h
+++ b/src/visualisers/CellShadingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/CoastPlottingAttributes.h b/src/visualisers/CoastPlottingAttributes.h
index 594e679..2f4e52e 100644
--- a/src/visualisers/CoastPlottingAttributes.h
+++ b/src/visualisers/CoastPlottingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:20 2013
*/
diff --git a/src/visualisers/CoastlinesAttributes.h b/src/visualisers/CoastlinesAttributes.h
index 4369f25..4fb7ace 100644
--- a/src/visualisers/CoastlinesAttributes.h
+++ b/src/visualisers/CoastlinesAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:20 2013
*/
diff --git a/src/visualisers/ColourTechnique.cc b/src/visualisers/ColourTechnique.cc
index 2cae036..74667c3 100644
--- a/src/visualisers/ColourTechnique.cc
+++ b/src/visualisers/ColourTechnique.cc
@@ -67,14 +67,13 @@ void ColourTechnique::prepare(const LevelSelection& levels)
ColourTable::ColourIterator colour = table.begin();
Colour left("NONE");
-
-
Colour right = colour->colour();
+
double min = std::numeric_limits<double>::max();
double previous = 0;
int index = 0;
-
+ //maxLevel_ = levels.back();
for (LevelSelection::const_iterator val = levels.begin(); val != levels.end(); ++val)
{
@@ -91,22 +90,27 @@ void ColourTechnique::prepare(const LevelSelection& levels)
left = right;
colour++;
if ( colour == table.end()) {
- right = Colour("NONE");
+ right = table.back().colour();
colour--;
}
else right = colour->colour();
- MagLog::dev() << (*this)[*val].left_ << "<" << *val << "<" << (*this)[*val].right_ << "\n";
+
}
bands_.insert(make_pair(Interval(levels.back(), levels.back() + epsilon), left));
+
+ MagLog::dev() << levels.back() << "<<" << left << "<<" << levels.back() + epsilon << endl;
}
Colour ColourTechnique::operator()(double value) const
{
+
const_iterator info = find(value);
if (info == end() ) {
+
//MagLog::warning() << "canot find a colour for " << value << "\n";
return Colour(-1, -1, -1);
}
+
return info->second.left_;
}
@@ -127,6 +131,7 @@ Colour ColourTechnique::right(double value) const
//MagLog::warning() << "canot find a colour for " << value << "\n";
return Colour(-1,-1,-1);
}
+
return info->second.right_;
}
double ColourTechnique::leftRange(double value) const
diff --git a/src/visualisers/ContinuousLegendMethodAttributes.h b/src/visualisers/ContinuousLegendMethodAttributes.h
index 07ce6d8..09607c4 100644
--- a/src/visualisers/ContinuousLegendMethodAttributes.h
+++ b/src/visualisers/ContinuousLegendMethodAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/visualisers/ContourAttributes.cc b/src/visualisers/ContourAttributes.cc
index c04806b..b02b3a1 100644
--- a/src/visualisers/ContourAttributes.cc
+++ b/src/visualisers/ContourAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "ContourAttributes.h"
diff --git a/src/visualisers/ContourAttributes.h b/src/visualisers/ContourAttributes.h
index 1ae3a56..10ba127 100644
--- a/src/visualisers/ContourAttributes.h
+++ b/src/visualisers/ContourAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/CountSelectionTypeAttributes.h b/src/visualisers/CountSelectionTypeAttributes.h
index 613b38e..25c7aa6 100644
--- a/src/visualisers/CountSelectionTypeAttributes.h
+++ b/src/visualisers/CountSelectionTypeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/visualisers/DateAxis.cc b/src/visualisers/DateAxis.cc
index 0dfe4bf..2726c27 100644
--- a/src/visualisers/DateAxis.cc
+++ b/src/visualisers/DateAxis.cc
@@ -189,8 +189,9 @@ void HyperAxis::update() const
void DateAxisMethod::automatic(AxisItems& list)
{
-
- double days = (to_-from_)/(24*3600);
+ DateTime min = (from_ < to_) ? from_ : to_;
+ DateTime max = (from_ < to_) ? to_ : from_;
+ double days = (max-min)/(24*3600);
if (days > 2500 ) { // 7 Years labels!
hours_ = false;
@@ -236,8 +237,8 @@ void DateAxisMethod::years(AxisItems& list)
DateTime label;
DateTime tick;
- const DateTime& min = from_;
- const DateTime& max = to_;
+ DateTime min = (from_ < to_) ? from_ : to_;
+ DateTime max = (from_ < to_) ? to_ : from_;
long position = 0;
int frequency;
@@ -315,8 +316,9 @@ void DateAxisMethod::months(AxisItems& list)
days_ = "off";
- const DateTime& min = from_;
- const DateTime& max = to_;
+ DateTime min = (from_ < to_) ? from_ : to_;
+ DateTime max = (from_ < to_) ? to_ : from_;
+
long position = 0;
int frequency;
@@ -377,7 +379,8 @@ void DateAxisMethod::months_label(AxisItems& in, AxisItems& list)
formats["one"] = make_pair("%b", 1);
formats["full"] = make_pair("%B", -1);
formats["three"] = make_pair("%B", 3);
- string last = "";
+ AxisItem* last = 0;
+ AxisItem* current = 0;
for ( AxisItems::iterator item = in.begin(); item != in.end(); ++item) {
AxisItem* month = (*item)->clone();
@@ -389,11 +392,17 @@ void DateAxisMethod::months_label(AxisItems& in, AxisItems& list)
MagLog::warning() << "could not find type " << month_composition_ << "for formatting month lables" << endl;
month->format("%B", 3);
}
- if ( last == month->label() ) {
+ AxisItem* current = (*item)->clone();
+ current->format("%B", 3);
+ if ( last && last->label() == month->label() ) {
delete month;
continue;
}
- last = month->label();
+ if ( last ) {
+ delete last;
+ }
+ last = current;
+
month->colour(month_colour_->name());
month->level(position_);
month->height(month_height_);
@@ -401,6 +410,8 @@ void DateAxisMethod::months_label(AxisItems& in, AxisItems& list)
list.push_back(month);
}
position_++;
+ if ( last )
+ delete last;
}
void DateAxisMethod::days(AxisItems& list)
{
@@ -408,8 +419,8 @@ void DateAxisMethod::days(AxisItems& list)
DateTime label;
DateTime tick;
- const DateTime& min = from_;
- const DateTime& max = to_;
+ DateTime min = (from_ < to_) ? from_ : to_;
+ DateTime max = (from_ < to_) ? to_ : from_;
long position = ( max-min < 20*24*3600 ) ? 12 : 0;
int frequency;
@@ -520,8 +531,8 @@ void DateAxisMethod::hours(AxisItems& list)
DateTime label;
DateTime tick;
- const DateTime& min = ( from_ < to_ ) ? from_ : to_;
- const DateTime& max = ( from_ < to_ ) ? to_ : from_;
+ DateTime min = ( from_ < to_ ) ? from_ : to_;
+ DateTime max = ( from_ < to_ ) ? to_ : from_;
int frequency;
diff --git a/src/visualisers/DotPolyShadingMethodAttributes.h b/src/visualisers/DotPolyShadingMethodAttributes.h
index 1098635..fe5a2ed 100644
--- a/src/visualisers/DotPolyShadingMethodAttributes.h
+++ b/src/visualisers/DotPolyShadingMethodAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/EfiGraphAttributes.cc b/src/visualisers/EfiGraphAttributes.cc
index d098c89..42c0168 100644
--- a/src/visualisers/EfiGraphAttributes.cc
+++ b/src/visualisers/EfiGraphAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "EfiGraphAttributes.h"
diff --git a/src/visualisers/EpsCloudAttributes.cc b/src/visualisers/EpsCloudAttributes.cc
index 2ef2492..9f6328c 100644
--- a/src/visualisers/EpsCloudAttributes.cc
+++ b/src/visualisers/EpsCloudAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "EpsCloudAttributes.h"
diff --git a/src/visualisers/EpsGraphAttributes.cc b/src/visualisers/EpsGraphAttributes.cc
index ac382d1..bd557db 100644
--- a/src/visualisers/EpsGraphAttributes.cc
+++ b/src/visualisers/EpsGraphAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "EpsGraphAttributes.h"
diff --git a/src/visualisers/EpsPlumeAttributes.cc b/src/visualisers/EpsPlumeAttributes.cc
index 8e05a17..10cdd96 100644
--- a/src/visualisers/EpsPlumeAttributes.cc
+++ b/src/visualisers/EpsPlumeAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "EpsPlumeAttributes.h"
diff --git a/src/visualisers/EpsShadeAttributes.cc b/src/visualisers/EpsShadeAttributes.cc
index 6a10741..d76fcb3 100644
--- a/src/visualisers/EpsShadeAttributes.cc
+++ b/src/visualisers/EpsShadeAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "EpsShadeAttributes.h"
diff --git a/src/visualisers/EpsWindAttributes.cc b/src/visualisers/EpsWindAttributes.cc
index f5fefab..0c13be8 100644
--- a/src/visualisers/EpsWindAttributes.cc
+++ b/src/visualisers/EpsWindAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "EpsWindAttributes.h"
diff --git a/src/visualisers/FixedTableModeAttributes.h b/src/visualisers/FixedTableModeAttributes.h
index 668045f..9cbfc89 100644
--- a/src/visualisers/FixedTableModeAttributes.h
+++ b/src/visualisers/FixedTableModeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/visualisers/GraphShade.cc b/src/visualisers/GraphShade.cc
index 68d188a..008211c 100644
--- a/src/visualisers/GraphShade.cc
+++ b/src/visualisers/GraphShade.cc
@@ -57,8 +57,6 @@ void GraphShade::print(ostream& out) const
void GraphShade::operator()(Polyline& box)
{
- // Make sure the polyline is closed!
- box.push_back(box.front());
(*style_)(box);
}
diff --git a/src/visualisers/GraphShadeStyle.cc b/src/visualisers/GraphShadeStyle.cc
index b3ebada..3a16792 100644
--- a/src/visualisers/GraphShadeStyle.cc
+++ b/src/visualisers/GraphShadeStyle.cc
@@ -68,39 +68,6 @@ void DotGraphShadeStyle::print(ostream& out) const
DotGraphShadeStyleAttributes::print(out);
out << "]";
}
-/*
-void GraphShadeStyle::operator()(Polyline* box, BasicGraphicsObjectContainer&)
-{
- box->setFilled(true);
- box->setFillColour(*colour_);
- ShadingProperties* shading = new FillShadingProperties();
- shading->inColour_ = *colour_;
- shading->outColour_ = Colour("NONE");
- box->setShading(shading);
-}
-
-
-void DotGraphShadeStyle::operator()(Polyline* box, BasicGraphicsObjectContainer&)
-{
- box->setFilled(true);
- box->setFillColour(*colour_);
- ShadingProperties* shading = new DotShadingProperties();
- shading->inColour_ = *colour_;
- shading->outColour_ = Colour("NONE");
- box->setShading(shading);
-
-}
-
-void HatchGraphShadeStyle::operator()(Polyline* box, BasicGraphicsObjectContainer&)
-{
- box->setFilled(true);
- box->setFillColour(*colour_);
- ShadingProperties* shading = new HatchShadingProperties();
- shading->inColour_ = *colour_;
- shading->outColour_ = Colour("NONE");
- box->setShading(shading);
-}
-*/
void GraphShadeStyle::operator()(Polyline& box)
{
@@ -115,7 +82,9 @@ void DotGraphShadeStyle::operator()(Polyline& box)
{
box.setFillColour(*colour_);
box.setFilled(true);
- ShadingProperties* shading = new DotShadingProperties();
+ DotShadingProperties* shading = new DotShadingProperties();
+ shading->size_ = size_;
+ shading->density_ = density_;
box.setShading(shading);
}
@@ -125,7 +94,7 @@ void HatchGraphShadeStyle::operator()(Polyline& box)
box.setFillColour(*colour_);
box.setFilled(true);
HatchShadingProperties* shading = new HatchShadingProperties();
- shading->index_ = 1;
+ shading->index_ = index_;
box.setShading(shading);
}
diff --git a/src/visualisers/GridPlottingAttributes.h b/src/visualisers/GridPlottingAttributes.h
index e4a33a9..e3f3a07 100644
--- a/src/visualisers/GridPlottingAttributes.h
+++ b/src/visualisers/GridPlottingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:20 2013
*/
diff --git a/src/visualisers/GridShadingAttributes.h b/src/visualisers/GridShadingAttributes.h
index 88fce64..3fea2b5 100644
--- a/src/visualisers/GridShadingAttributes.h
+++ b/src/visualisers/GridShadingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/HatchPolyShadingMethodAttributes.h b/src/visualisers/HatchPolyShadingMethodAttributes.h
index 94093a7..5c95c3e 100644
--- a/src/visualisers/HatchPolyShadingMethodAttributes.h
+++ b/src/visualisers/HatchPolyShadingMethodAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/HiLoAttributes.cc b/src/visualisers/HiLoAttributes.cc
index 48cd542..47ed2d3 100644
--- a/src/visualisers/HiLoAttributes.cc
+++ b/src/visualisers/HiLoAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
#include "HiLoAttributes.h"
diff --git a/src/visualisers/HiLoAttributes.h b/src/visualisers/HiLoAttributes.h
index 266dfa3..504c3dc 100644
--- a/src/visualisers/HiLoAttributes.h
+++ b/src/visualisers/HiLoAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/HiLoMarkerAttributes.h b/src/visualisers/HiLoMarkerAttributes.h
index 3d683c7..002ab6a 100644
--- a/src/visualisers/HiLoMarkerAttributes.h
+++ b/src/visualisers/HiLoMarkerAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/HiLoNumberAttributes.h b/src/visualisers/HiLoNumberAttributes.h
index f94aef6..cf4479d 100644
--- a/src/visualisers/HiLoNumberAttributes.h
+++ b/src/visualisers/HiLoNumberAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/HiLoTechniqueAttributes.h b/src/visualisers/HiLoTechniqueAttributes.h
index df0c674..a118af4 100644
--- a/src/visualisers/HiLoTechniqueAttributes.h
+++ b/src/visualisers/HiLoTechniqueAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/HiLoTextAttributes.h b/src/visualisers/HiLoTextAttributes.h
index 5f1b7a0..ae54d2e 100644
--- a/src/visualisers/HiLoTextAttributes.h
+++ b/src/visualisers/HiLoTextAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/HistogramAttributes.cc b/src/visualisers/HistogramAttributes.cc
index 30bcfea..0103b81 100644
--- a/src/visualisers/HistogramAttributes.cc
+++ b/src/visualisers/HistogramAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:19 2013
*/
#include "HistogramAttributes.h"
diff --git a/src/visualisers/HistogramLegendMethodAttributes.h b/src/visualisers/HistogramLegendMethodAttributes.h
index e86fb5f..f52c07a 100644
--- a/src/visualisers/HistogramLegendMethodAttributes.h
+++ b/src/visualisers/HistogramLegendMethodAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/visualisers/ImagePlottingAttributes.h b/src/visualisers/ImagePlottingAttributes.h
index ac8df03..f5018b8 100644
--- a/src/visualisers/ImagePlottingAttributes.h
+++ b/src/visualisers/ImagePlottingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/visualisers/ImportPlotAttributes.h b/src/visualisers/ImportPlotAttributes.h
index 0218764..de7023c 100644
--- a/src/visualisers/ImportPlotAttributes.h
+++ b/src/visualisers/ImportPlotAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/IntervalSelectionType.cc b/src/visualisers/IntervalSelectionType.cc
index 54e87fc..e35db1b 100644
--- a/src/visualisers/IntervalSelectionType.cc
+++ b/src/visualisers/IntervalSelectionType.cc
@@ -84,24 +84,33 @@ void IntervalSelectionType::calculate(double min, double max, bool shading)
double level = reference_;
- while ( level <= lmax ) {
+ int i = 0;
+ while ( level < lmax && !same(level, lmax) ) {
if ( level > lmin )
levels.insert(level);
- level += interval_;
+ level = reference_ + (i * interval_);
+ i++;
}
level = reference_;
- while ( level >= lmin ) {
+ i = 1;
+ while ( level > lmin && !same(level, lmin) ) {
if ( level < lmax )
levels.insert(level);
- level -= interval_;
+ level = reference_ - (i * interval_);
+ i++;
}
-
+
+ ostringstream out;
+ out << "\nIntervalSelectionType-->[";
for (std::set<double>::const_iterator level = levels.begin(); level != levels.end(); ++level) {
- MagLog::dev() << "IntervalSelectionType-->" << *level << "\n";
+ out << *level << ", ";
push_back(*level);
}
+ out << "]" << endl;
+ MagLog::dev() << out.str() << endl;
+
}
diff --git a/src/visualisers/IntervalSelectionTypeAttributes.h b/src/visualisers/IntervalSelectionTypeAttributes.h
index 7535238..9f37a2a 100644
--- a/src/visualisers/IntervalSelectionTypeAttributes.h
+++ b/src/visualisers/IntervalSelectionTypeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/visualisers/IsoHighlightAttributes.h b/src/visualisers/IsoHighlightAttributes.h
index ab17a27..243f285 100644
--- a/src/visualisers/IsoHighlightAttributes.h
+++ b/src/visualisers/IsoHighlightAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:24 2013
*/
diff --git a/src/visualisers/IsoLabelAttributes.h b/src/visualisers/IsoLabelAttributes.h
index a5324eb..ecb5edb 100644
--- a/src/visualisers/IsoLabelAttributes.h
+++ b/src/visualisers/IsoLabelAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/IsoPlot.cc b/src/visualisers/IsoPlot.cc
index 8fecd6b..91cdec6 100644
--- a/src/visualisers/IsoPlot.cc
+++ b/src/visualisers/IsoPlot.cc
@@ -153,7 +153,7 @@ public:
void reshape(Shape* cell)
{
int index = cell->index_;
- if ( index == -1 ) {
+ if ( index < 0 ) {
delete cell;
return;
}
@@ -1209,7 +1209,8 @@ void IsoPlot::isoline(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
if (level+1!= levels_.end() )
range.insert(make_pair(Interval(*level, *(level+1)), r++));
}
- range.insert(make_pair(Interval(levels_.back(), levels_.back()+epsilon), r));
+ if ( shading_->shadingMode())
+ range.insert(make_pair(Interval(levels_.back(), levels_.back()+epsilon), r));
CellArray* array = shading_->array(data, range, transformation, parent.widthResolution(), parent.heightResolution(),
resolution_, technique_);
CellBox view(array);
@@ -1647,8 +1648,14 @@ CellArray::CellArray(MatrixHandler& data, IntervalMap<int>& range) : data_(data)
GridArray::GridArray(MatrixHandler& data, IntervalMap<int>& range, const Transformation& transformation, int width, int height, float resol, const string& technique) : CellArray(data, range)
{
Timer timer("GridArray", "GridArray");
- rows_ = data.rows();
- columns_ = data.columns();
+ if ( magCompare(technique, "middle") ) {
+ rows_ = data.rows();
+ columns_ = data.columns();
+ }
+ else {
+ rows_ = data.rows() -1;
+ columns_ = data.columns() -1;
+ }
reserve(rows_*columns_);
for (int row = 0; row < rows_; row++)
for (int column = 0; column < columns_; column++) {
@@ -1677,6 +1684,7 @@ GridCell::GridCell(const CellArray& data, int row, int column, const Transformat
outOfRange_ = 4;
if ( magCompare(technique, "middle")) {
+
double rc1 = data.data_.column(row, column1);
double crc = data.data_.column(row, column);
double rc2 = data.data_.column(row, column2);
@@ -1695,6 +1703,7 @@ GridCell::GridCell(const CellArray& data, int row, int column, const Transformat
}
else {
+
columns_[0] = data.data_.column(row, column);
columns_[1] = data.data_.column(row, column2);
columns_[2] = data.data_.column(row, column2);
@@ -1706,6 +1715,7 @@ GridCell::GridCell(const CellArray& data, int row, int column, const Transformat
}
for (int i = 0; i < 4; i++) {
+
transformation.fast_reproject(columns_[i], rows_[i]);
diff --git a/src/visualisers/IsoPlotAttributes.cc b/src/visualisers/IsoPlotAttributes.cc
index a5fc461..bd9507e 100644
--- a/src/visualisers/IsoPlotAttributes.cc
+++ b/src/visualisers/IsoPlotAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "IsoPlotAttributes.h"
diff --git a/src/visualisers/IsoPlotAttributes.h b/src/visualisers/IsoPlotAttributes.h
index 018c39b..0306a39 100644
--- a/src/visualisers/IsoPlotAttributes.h
+++ b/src/visualisers/IsoPlotAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/IsoShading.h b/src/visualisers/IsoShading.h
index cb90a71..cb51292 100644
--- a/src/visualisers/IsoShading.h
+++ b/src/visualisers/IsoShading.h
@@ -76,7 +76,7 @@ public:
virtual bool operator()(const LevelSelection&) { return false; }
virtual void visit(LegendVisitor&) {}
virtual void operator()(Polyline*) const {}
- virtual void colour(double, Colour&) {}
+ virtual void colour(double, Colour&) {};
virtual bool needClipping() { return false;}
protected:
@@ -131,6 +131,8 @@ public:
if ( this->min_ <= *level && *level <= this->max_ )
filter.push_back(*level);
(*this->colourMethod_).prepare(filter);
+ if ( !filter.empty() && ( filter.back() == filter.front() ) )
+ filter.push_back(filter.front());
return (*this->technique_).prepare(filter, *this->colourMethod_);
}
// returns true, if the contouring lines have to be created... False, is the shading is finished...
@@ -139,7 +141,11 @@ public:
(*this->technique_).visit(legend, *this->colourMethod_); }
virtual bool shadingMode() { return (*this->technique_).shadingMode(); }
virtual bool hasLegend() { return (*this->technique_).hasLegend(); }
-
+ virtual void colour(double val, Colour& colour) {
+ ColourTechnique::iterator icolour = colourMethod_->find(val);
+ if ( icolour != colourMethod_->end() )
+ colour = icolour->second.right_;
+ }
protected:
//! Method to print string about this class on to a stream of type ostream (virtual).
diff --git a/src/visualisers/IsoShadingAttributes.cc b/src/visualisers/IsoShadingAttributes.cc
index fe38b6d..9acf4a7 100644
--- a/src/visualisers/IsoShadingAttributes.cc
+++ b/src/visualisers/IsoShadingAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "IsoShadingAttributes.h"
diff --git a/src/visualisers/IsoShadingAttributes.h b/src/visualisers/IsoShadingAttributes.h
index 9ba2b2e..a35ea52 100644
--- a/src/visualisers/IsoShadingAttributes.h
+++ b/src/visualisers/IsoShadingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/LabelPlottingAttributes.h b/src/visualisers/LabelPlottingAttributes.h
index 16c96b3..68f82d0 100644
--- a/src/visualisers/LabelPlottingAttributes.h
+++ b/src/visualisers/LabelPlottingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:20 2013
*/
diff --git a/src/visualisers/LegendBoxAttributes.h b/src/visualisers/LegendBoxAttributes.h
index e883da1..1934808 100644
--- a/src/visualisers/LegendBoxAttributes.h
+++ b/src/visualisers/LegendBoxAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/visualisers/LevelListSelectionTypeAttributes.h b/src/visualisers/LevelListSelectionTypeAttributes.h
index fb99f55..913d49c 100644
--- a/src/visualisers/LevelListSelectionTypeAttributes.h
+++ b/src/visualisers/LevelListSelectionTypeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/visualisers/LevelSelectionAttributes.h b/src/visualisers/LevelSelectionAttributes.h
index 6345fae..0a324ab 100644
--- a/src/visualisers/LevelSelectionAttributes.h
+++ b/src/visualisers/LevelSelectionAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/visualisers/ListColourTechniqueAttributes.h b/src/visualisers/ListColourTechniqueAttributes.h
index b81bfcf..e1b994b 100644
--- a/src/visualisers/ListColourTechniqueAttributes.h
+++ b/src/visualisers/ListColourTechniqueAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/LookupTableModeAttributes.h b/src/visualisers/LookupTableModeAttributes.h
index d84f725..e2e7e59 100644
--- a/src/visualisers/LookupTableModeAttributes.h
+++ b/src/visualisers/LookupTableModeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:15 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/visualisers/Makefile.in b/src/visualisers/Makefile.in
index 16c833c..fe1c832 100644
--- a/src/visualisers/Makefile.in
+++ b/src/visualisers/Makefile.in
@@ -363,6 +363,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -447,6 +448,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/visualisers/MarkerShadingTechniqueAttributes.h b/src/visualisers/MarkerShadingTechniqueAttributes.h
index d9d9a0a..14bc510 100644
--- a/src/visualisers/MarkerShadingTechniqueAttributes.h
+++ b/src/visualisers/MarkerShadingTechniqueAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/MetgramCurveAttributes.cc b/src/visualisers/MetgramCurveAttributes.cc
index 7cebdd0..40fa064 100644
--- a/src/visualisers/MetgramCurveAttributes.cc
+++ b/src/visualisers/MetgramCurveAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "MetgramCurveAttributes.h"
diff --git a/src/visualisers/MetgramFlagsAttributes.cc b/src/visualisers/MetgramFlagsAttributes.cc
index 800e272..39ed854 100644
--- a/src/visualisers/MetgramFlagsAttributes.cc
+++ b/src/visualisers/MetgramFlagsAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "MetgramFlagsAttributes.h"
diff --git a/src/visualisers/MetgramGraphAttributes.cc b/src/visualisers/MetgramGraphAttributes.cc
index 81f0b97..879debe 100644
--- a/src/visualisers/MetgramGraphAttributes.cc
+++ b/src/visualisers/MetgramGraphAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "MetgramGraphAttributes.h"
diff --git a/src/visualisers/NoGridPlottingAttributes.h b/src/visualisers/NoGridPlottingAttributes.h
index bbec009..9b26591 100644
--- a/src/visualisers/NoGridPlottingAttributes.h
+++ b/src/visualisers/NoGridPlottingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:13 2012
+ Generated: Mon Apr 15 17:55:20 2013
*/
diff --git a/src/visualisers/ObsItemFamily.cc b/src/visualisers/ObsItemFamily.cc
index 14475b0..2754d08 100644
--- a/src/visualisers/ObsItemFamily.cc
+++ b/src/visualisers/ObsItemFamily.cc
@@ -595,7 +595,7 @@ void ObsCloud::visit(std::set<string>& tokens)
if ( attributes_->medium_ ) tokens.insert("medium_cloud");
if ( attributes_->high_ ) tokens.insert("high_cloud");
if ( !colour_.empty() ) {
- cout << "set cloud Colour " << colour_ << endl;
+
attributes_->medium_colour_ = auto_ptr<Colour>(new Colour(colour_));
attributes_->low_colour_ = auto_ptr<Colour>(new Colour(colour_));
attributes_->high_colour_ = auto_ptr<Colour>(new Colour(colour_));
@@ -784,7 +784,9 @@ void ObsEra::visit(std::set<string>& tokens)
void ObsEra::operator()(CustomisedPoint& point, ComplexSymbol& symbol) const
{
-
+ CustomisedPoint::iterator pt = point.find(key_);
+ if (pt == point.end())
+ return;
string text = tostring(point[key_]);
TextItem* object = new TextItem();
object->x(column_);
diff --git a/src/visualisers/ObsPlotting.cc b/src/visualisers/ObsPlotting.cc
index 2679663..30e3074 100644
--- a/src/visualisers/ObsPlotting.cc
+++ b/src/visualisers/ObsPlotting.cc
@@ -70,12 +70,13 @@ void ObsPlotting::operator()(Data& data, BasicGraphicsObjectContainer& out)
CustomisedPointsList values;
const Transformation& transformation = out.transformation();
- data.customisedPoints(transformation, needs, values, false); // we only need the points in the area
+ bool all = false;
+ // false : we only need the points in the area
+ data.customisedPoints(transformation, needs, values, all);
-
- COUNT = values.size();
+
for (multimap<string, string>::const_iterator type = types.find("type"); type != types.end(); ++type)
{
try {
diff --git a/src/visualisers/ObsPlottingAttributes.h b/src/visualisers/ObsPlottingAttributes.h
index 133a3cf..0efca04 100644
--- a/src/visualisers/ObsPlottingAttributes.h
+++ b/src/visualisers/ObsPlottingAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:25 2013
*/
diff --git a/src/visualisers/PolyShadingMethod.cc b/src/visualisers/PolyShadingMethod.cc
index 36e77d5..7e52b5b 100644
--- a/src/visualisers/PolyShadingMethod.cc
+++ b/src/visualisers/PolyShadingMethod.cc
@@ -43,6 +43,8 @@ void PolyShadingMethod::operator()(Polyline& poly) const
{
int index = poly.index();
+ if (index < 0)
+ return;
poly.setFilled(true);
poly.setStroke(false);
poly.setFilled(true);
@@ -54,9 +56,11 @@ void PolyShadingMethod::operator()(Polyline& poly) const
void PolyShadingMethod::visit(LegendVisitor& legend, const ColourTechnique& colour) {
MagLog::dev() << "Create legend information" << "\n";
-
+ LegendEntryBuilder helper(legend, colour);
std::adjacent_find(colour.begin(), colour.end(), LegendEntryBuilder(legend, this, colour));
-
+ if ( colour.size() == 1 ) {
+ helper(*colour.begin(), *colour.begin());
+ }
legend.last(); // Flag the last entry as being the last! To get a nice labelling in countinuous mode!!!
}
@@ -64,13 +68,16 @@ void PolyShadingMethod::visit(LegendVisitor& legend, const ColourTechnique& col
int PolyShadingMethod::index(double value)
{
+
+ if ( same(value, last_) )
+ return indexes_.size() -1;
return indexes_.find(value, -1);
}
int PolyShadingMethod::rightIndex(double value)
{
if ( same(value, first_) ) return 0;
- if ( same(value, last_) ) return -1;
+ if ( same(value, last_) ) return -1;
return indexes_.find(value, -1);
}
@@ -86,14 +93,18 @@ void PolyShadingMethod::prepare(const LevelSelection& levels, const ColourTechni
{
if (levels.empty() )return;
+ first_ = levels.front();
+ last_ = levels.back();
LevelSelection::const_iterator from = levels.begin();
LevelSelection::const_iterator level = levels.begin();
level++;
- first_ = levels.front();
- last_ = levels.back();
+
+
+ indexes_.clear();
+ colours_.clear();
int index = 0;
for ( ; level != levels.end(); ++level) {
@@ -116,11 +127,15 @@ void DotPolyShadingMethod::prepare(const LevelSelection& levels, const ColourTec
float step = (max_density_ - min_density_)/(levels.size() - 1);
first_ = levels.front();
last_ = levels.back();
+
LevelSelection::const_iterator from = levels.begin();
LevelSelection::const_iterator level = levels.begin();
level++;
float density = min_density_;
int index = 0;
+ indexes_.clear();
+ colours_.clear();
+ dots_.clear();
for ( ; level != levels.end(); ++level) {
indexes_.insert(make_pair(Interval(*from, *level), index));
@@ -163,14 +178,19 @@ void HatchPolyShadingMethod::prepare(const LevelSelection& levels, const ColourT
MagLog::warning() << "index should be < 7--> reset to 1 "<< endl;
index_ = 1 ;
}
- LevelSelection::const_iterator from = levels.begin();
- LevelSelection::const_iterator level = levels.begin();
first_ = levels.front();
last_ = levels.back();
- level++;
+
+ LevelSelection::const_iterator from = levels.begin();
+ LevelSelection::const_iterator level = levels.begin();
+ indexes_.clear();
+ colours_.clear();
+ hatches_.clear();
+
+ level++;
int i = 0;
+
for ( ; level != levels.end(); ++level) {
- cout << *from << " << " << colours(*from).name() << " " << i << " " << index << " << " << *level << endl;
indexes_.insert(make_pair(Interval(*from, *level), i));
colours_.push_back(colours.right(*from));
hatches_.push_back((index_) ? index_ : index);
diff --git a/src/visualisers/PolyShadingTechnique.cc b/src/visualisers/PolyShadingTechnique.cc
index 53a06fc..27f25aa 100644
--- a/src/visualisers/PolyShadingTechnique.cc
+++ b/src/visualisers/PolyShadingTechnique.cc
@@ -44,9 +44,13 @@ CellArray* PolyShadingTechnique::array(MatrixHandler& matrix, IntervalMap<int>&
void GridShading::visit(LegendVisitor& legend, const ColourTechnique& colour)
{
MagLog::dev() << "Create legend information" << "\n";
+ LegendEntryBuilder helper(legend, colour);
- std::adjacent_find(colour.begin(), colour.end(), LegendEntryBuilder(legend, colour));
+ std::adjacent_find(colour.begin(), colour.end(), helper);
+ if ( colour.size() == 1 ) {
+ helper(*colour.begin(), *colour.begin());
+ }
legend.last(); // Flag the last entry as being the last! To get a nice labelling in cotinuous mode!!!
diff --git a/src/visualisers/PolyShadingTechniqueAttributes.cc b/src/visualisers/PolyShadingTechniqueAttributes.cc
index bfc90f0..d2e6681 100644
--- a/src/visualisers/PolyShadingTechniqueAttributes.cc
+++ b/src/visualisers/PolyShadingTechniqueAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
#include "PolyShadingTechniqueAttributes.h"
diff --git a/src/visualisers/PolyShadingTechniqueAttributes.h b/src/visualisers/PolyShadingTechniqueAttributes.h
index d31086e..b2251a6 100644
--- a/src/visualisers/PolyShadingTechniqueAttributes.h
+++ b/src/visualisers/PolyShadingTechniqueAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/SampleContourMethodAttributes.h b/src/visualisers/SampleContourMethodAttributes.h
index 98e590a..4c09a39 100644
--- a/src/visualisers/SampleContourMethodAttributes.h
+++ b/src/visualisers/SampleContourMethodAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:21 2013
*/
diff --git a/src/visualisers/SegmentJoiner.cc b/src/visualisers/SegmentJoiner.cc
index 9579116..2698e0f 100644
--- a/src/visualisers/SegmentJoiner.cc
+++ b/src/visualisers/SegmentJoiner.cc
@@ -518,7 +518,10 @@ double SegmentJoiner::area(const vector<Point> & poly)
{
double area = 0;
- for(int i = 0; i < poly.size()-1; i++)
+ int nb = poly.size()-1;
+
+
+ for(int i = 0; i < nb; i++)
{
area += (poly[i].x_*poly[i+1].y_) - (poly[i+1].x_*poly[i].y_) ;
}
diff --git a/src/visualisers/SymbolIndividualModeAttributes.h b/src/visualisers/SymbolIndividualModeAttributes.h
index 07604dd..6b5e95f 100644
--- a/src/visualisers/SymbolIndividualModeAttributes.h
+++ b/src/visualisers/SymbolIndividualModeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/visualisers/SymbolTableModeAttributes.h b/src/visualisers/SymbolTableModeAttributes.h
index e2ef866..15e554c 100644
--- a/src/visualisers/SymbolTableModeAttributes.h
+++ b/src/visualisers/SymbolTableModeAttributes.h
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:14 2012
+ Generated: Mon Apr 15 17:55:22 2013
*/
diff --git a/src/visualisers/WindPlotting.cc b/src/visualisers/WindPlotting.cc
index a1948ab..389b2b1 100644
--- a/src/visualisers/WindPlotting.cc
+++ b/src/visualisers/WindPlotting.cc
@@ -68,7 +68,7 @@ void WindPlotting::adjust( CustomisedPointsList& points, const Transformation& t
double min = *std::min_element(values.begin(), values.end());
double max = *std::max_element(values.begin(), values.end());
-
+ if ( same(min, max) ) return;
levels_->set(*this);
colourMethod_->set(*this);
@@ -76,6 +76,7 @@ void WindPlotting::adjust( CustomisedPointsList& points, const Transformation& t
LevelSelection::const_iterator level = levels_->begin();
colourMethod_->prepare(*levels_);
Colour last;
+ map_.clear();
while ( true) {
if (level+1 == levels_->end() ) break;
MagLog::debug() << "[" << *level << ", " << *(level+1) << "]=" << colourMethod_->right(*level) << endl;
diff --git a/src/web/Makefile.in b/src/web/Makefile.in
index ec83ac2..56481b4 100644
--- a/src/web/Makefile.in
+++ b/src/web/Makefile.in
@@ -160,6 +160,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -244,6 +245,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/web/ObsJSon.cc b/src/web/ObsJSon.cc
index 8a00fc2..95924cb 100644
--- a/src/web/ObsJSon.cc
+++ b/src/web/ObsJSon.cc
@@ -89,7 +89,7 @@ void ObsJSon::decode()
}
catch (std::exception e)
{
- MagLog::fatal() << "Could not processed the file: " << path_ << ": " << e.what() << endl;
+ MagLog::error() << "Could not processed the file: " << path_ << ": " << e.what() << endl;
abort();
}
}
@@ -122,9 +122,19 @@ void ObsJSon::customisedPoints(const Transformation&, const std::set<string>& wh
for (vector<CustomisedPoint*>::const_iterator point = points_.begin(); point != points_.end(); ++point) {
out.push_back(*point);
- cout << **point << endl;
+
}
}
+void ObsJSon::customisedPoints(const Transformation& t, const std::set<string>& n, CustomisedPointsList& out, bool all)
+{
+ decode();
+
+ for (vector<CustomisedPoint*>::const_iterator point = points_.begin(); point != points_.end(); ++point) {
+ if ( t.in((*point)->longitude(), (*point)->latitude()) )
+ out.push_back(*point);
+
+ }
+}
void ObsJSon::getInfo(const std::set<string>& what, multimap<string, string>& info)
{
diff --git a/src/web/ObsJSon.h b/src/web/ObsJSon.h
index 631f6a0..b41f126 100644
--- a/src/web/ObsJSon.h
+++ b/src/web/ObsJSon.h
@@ -54,10 +54,8 @@ public:
void customisedPoints(const std::set<string>&, CustomisedPointsList&);
void customisedPoints(const Transformation&, const std::set<string>&, CustomisedPointsList& );
- void customisedPoints(const Transformation& t, const std::set<string>& n, CustomisedPointsList& out, bool all)
- {
- customisedPoints(t, n, out);
- }
+ void customisedPoints(const Transformation& t, const std::set<string>& n, CustomisedPointsList& out, bool all);
+
PointsHandler& points(const Transformation&, bool) { assert(false); }
virtual void set(const map<string, string>& map) { ObsJSonAttributes::set(map); }
diff --git a/src/web/ObsJSonAttributes.cc b/src/web/ObsJSonAttributes.cc
index 9ebedf3..bac0f6f 100644
--- a/src/web/ObsJSonAttributes.cc
+++ b/src/web/ObsJSonAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "ObsJSonAttributes.h"
diff --git a/src/web/WrepJSonAttributes.cc b/src/web/WrepJSonAttributes.cc
index 1d60d6d..de3bb92 100644
--- a/src/web/WrepJSonAttributes.cc
+++ b/src/web/WrepJSonAttributes.cc
@@ -25,7 +25,7 @@
This file is automatically generated.
Do Not Edit!
- Generated: Wed Dec 5 12:07:16 2012
+ Generated: Mon Apr 15 17:55:26 2013
*/
#include "WrepJSonAttributes.h"
diff --git a/src/xml/Makefile.in b/src/xml/Makefile.in
index 6066885..06db7cd 100644
--- a/src/xml/Makefile.in
+++ b/src/xml/Makefile.in
@@ -95,6 +95,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -179,6 +180,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/src/xml/graph_params.xml b/src/xml/graph_params.xml
index 209b8b4..d13882c 100644
--- a/src/xml/graph_params.xml
+++ b/src/xml/graph_params.xml
@@ -82,18 +82,18 @@
<documentation> Colour of graph symbol </documentation>
</parameter>
- <parameter name='graph_x_suppress_below' from='float' to='float' member='x_below' default='-INT_MAX'>
+ <parameter name='graph_x_suppress_below' from='float' to='float' member='x_below' default='LLONG_MIN'>
<documentation> Value on the x below which a point is considered missing </documentation>
</parameter>
- <parameter name='graph_x_suppress_above' from='float' to='float' member='x_above' default='INT_MAX'>
+ <parameter name='graph_x_suppress_above' from='float' to='float' member='x_above' default='LLONG_MAX'>
<documentation> Value on the x above which a point is considered missing </documentation>
</parameter>
- <parameter name='graph_y_suppress_below' from='float' to='float' member='y_below' default='-INT_MAX'>
+ <parameter name='graph_y_suppress_below' from='float' to='float' member='y_below' default='LLONG_MIN'>
<documentation> Value on the y below which a point is considered missing </documentation>
</parameter>
- <parameter name='graph_y_suppress_above' from='float' to='float' member='y_above' default='INT_MAX'>
+ <parameter name='graph_y_suppress_above' from='float' to='float' member='y_above' default='LLONG_MAX'>
<documentation> Value on the y above which a point is considered missing </documentation>
</parameter>
@@ -212,10 +212,10 @@
<documentation> The colour of the shaded part of bars </documentation>
</parameter>
</class>
-
-
+
+
<class name='DotGraphShadeStyle' directory='visualisers' inherits='GraphShadeStyle' include='GraphShadeStyle.h'>
- <parameter name='graph_shade_density' from='int' to='int' member='density' xml='dot_density' default='20' implemented='no'>
+ <parameter name='graph_shade_dot_density' from='int' to='int' member='density' xml='dot_density' default='20'>
<documentation> Density per square cm. of shading dots </documentation>
</parameter>
diff --git a/test/C/Makefile.in b/test/C/Makefile.in
index 2495de8..d04cbcf 100644
--- a/test/C/Makefile.in
+++ b/test/C/Makefile.in
@@ -153,6 +153,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -237,6 +238,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/test/MagML/Makefile.in b/test/MagML/Makefile.in
index 4a32abc..5db5e0e 100644
--- a/test/MagML/Makefile.in
+++ b/test/MagML/Makefile.in
@@ -92,6 +92,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -176,6 +177,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/test/Makefile.in b/test/Makefile.in
index 3d369f3..3fe3004 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -130,6 +130,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -214,6 +215,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/test/fortran/Makefile.in b/test/fortran/Makefile.in
index 15e0c4e..cb50c95 100644
--- a/test/fortran/Makefile.in
+++ b/test/fortran/Makefile.in
@@ -143,6 +143,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -227,6 +228,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/test/python/Makefile.in b/test/python/Makefile.in
index a25d57c..56086f5 100644
--- a/test/python/Makefile.in
+++ b/test/python/Makefile.in
@@ -92,6 +92,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -176,6 +177,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 0a4f4ac..bbf2058 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -114,6 +114,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@@ -198,6 +199,7 @@ SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SITE_NAME = @SITE_NAME@
STRIP = @STRIP@
+SWIG = @SWIG@
UIC = @UIC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
diff --git a/version.sh b/version.sh
index 3baea24..5cfc1b3 100644
--- a/version.sh
+++ b/version.sh
@@ -2,9 +2,9 @@
# Package name and versioning information for Magics
#
MAGICS_PACKAGE_NAME='Magics'
-MAGICS_PACKAGE_VERSION='2.18.7'
-MAGICS_PACKAGE_COPYRIGHT_YEAR='2012'
-MAGICS_PACKAGE_COPYRIGHT_PERIOD='2007-2012'
+MAGICS_PACKAGE_VERSION='2.18.15'
+MAGICS_PACKAGE_COPYRIGHT_YEAR='2013'
+MAGICS_PACKAGE_COPYRIGHT_PERIOD='2007-2013'
MAGICS_PACKAGE_RELEASE_DATE=`date +%d-%B-%Y`
#
#
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/magics.git
More information about the debian-science-commits
mailing list