Hi Marcos,thank you very much for posting this solution! I will try to adopt your modifications for our THREDDS server.
Cheers, Matthias Am 17.06.2011 19:02, schrieb Marcos Hermida:
Hi Matthias (and all), I've followed your work integrating ncWMS trunk into THREDDS and after adding a few more changes to both ncWMS trunk and TDS code I got it working. I've worked on 919 code revision of ncWMS trunk and on 13794 revision of TDS. The features added to TDS are the Kyle Wilcox's styles for vector layers (the styles weren't added to the capabilities_xml.jsp and capabilities_xml_1_1_1.jsp files yet so they aren't announced in the capabilities documents) and the GetVerticalProfile and GetVerticalSection requests. Besides the code changes, I had to update the geotk-bundle-referencing.jar from version 3.04 to version 3.17 and add the prtree.jar on TDS third party libraries needed for runtime. I understand these changes aren't the best way to do the integration but at least are a workaround while there isn't a new TDS version with an updated ncWMS and in case someone else is interested. Cheers! On May 9, 2011 at 8:50 AM "Matthias Müller" <Matthias_Mueller@xxxxxxxxxxxxx> wrote: > Hi Jon and Kyle, > > here are the results of my integration efforts with thredds-trunk and > ncwms-trunk. There's one missing method (from ncwms ScalarLayer) in > ThreddsScalarLayer and ThreddsVectorLayer: > > @Override > public List<List<Float>> readVerticalSection(DateTime arg0, > List<Double> arg1, Domain<HorizontalPosition> arg2) throws > InvalidDimensionValueException, IOException {} > > I don't have a good idea how to implement the missing logic. Maybe you > can use the attached diff to prepare the next release or a preliminary > patch. This is what I've done so far: > > - set up a combined project from the thredds and ncwms svn > - copied Kyles new ncwms modifications from the git repository > (https://github.com/asascience/THREDDS/commit/53987775e1bdd31b533f516383226ac3b77e5b58) > - removed everything that had to do with "nearest time" (in favour of a > first "clean" integration) > - updated some method names in the thredds classes that had changed in > the current ncwms > > Cheers, > Matthias > > Am 04.05.2011 20:24, schrieb Jon Blower: > > Matthias, > > > > Yes, the TDS trunk is a bit out of sync with the ncWMS trunk so you can't easily port a custom ncWMS into TDS. (In theory, the "jar-for-THREDDS" ant target in ncWMS will generate the right JAR file, but as it stands it won't drop into THREDDS.) > > > > Kyle's work below might fix the issue, but Ethan and I need to work this up properly for a near-future THREDDS release. > > > > Cheers, Jon > > > > -----Original Message----- > > From: Kyle Wilcox [mailto:KWilcox@xxxxxxxxxxxxxx] > > Sent: 04 May 2011 14:30 > > To: 'Matthias Müller' > > Cc: 'ncwms-users@xxxxxxxxxxxxxxxxxxxxx' > > Subject: Re: [Ncwms-users] [thredds] Simple fix => much smaller TDS WMS GetCapabilities size (for model output) > > > > I don't know if anyone has tested this, but try this: > > > > https://github.com/asascience/ToolsUI > > > > These are NetBeans projects for TDS and ToolsUI. It includes the TRUNK NetCDF-Java codebase as a git submodule (see README). The NetCDF-Java codebase is here: https://github.com/asascience/THREDDS. I update the THREDDS codebase weekly to the trunk. > > > > There are issues with the maven and ant files in NetCDF-Java... some don't generate the JARs in the correct places or with the correct version numbers. You may have to play with this a bit. > > > > I also gave a small shot at getting NcWMS trunk into TDS trunk last December: > > > > https://github.com/asascience/THREDDS/commit/53987775e1bdd31b533f516383226ac3b77e5b58 > > > > If you get it working, please send me the patch or a pull request! > > > > --------- > > Kyle Wilcox, Engineer > > Applied Science Associates > > 55 Village Square Drive > > South Kingstown, RI 02879 > > p: (401) 789-6224 > > e: kwilcox@xxxxxxxxxxxxxx > > > > > >> -----Original Message----- > >> From: Matthias Müller [mailto:Matthias_Mueller@xxxxxxxxxxxxx] > >> Sent: Wednesday, May 04, 2011 8:30 AM > >> To: ncwms-users@xxxxxxxxxxxxxxxxxxxxx > >> Subject: Re: [Ncwms-users] [thredds] Simple fix => much smaller TDS > >> WMS GetCapabilities size (for model output) > >> > >> Hello Jon, all, > >> > >> this issue (see below) was discussed earlier his year on the thredds > >> mailing list. Is there any documentation on how to set up a combined > >> ncwms/thredds project (e.g. in eclipse or netbeans?) to incoporate the > >> changes into a current thredds distribution? I've modified the old > >> ncwms classes that were used for THREDDS 4.2 and re-integrated them, > >> but some cross-dependencies keep raising errors at runtime. > >> > >> Thanks, > >> Matthias > >> > >> > >> Am 04.01.2011 16:28, schrieb Jon Blower: > >>> Hi Kyle, > >>> > >>> Great that you've had a go at #1. I'll chew it over and merge it > >> when I get a chance. > >>> > >>> Regarding the custom URL parameter - generally I agree that non- > >> standard params are to be avoided if possible, but actually in the > >> case of a Capabilities doc I don't think it's so bad. A GIS will > >> often ask for the full Capabilities URL, in which case you can simply > >> add the custom parameter to the URL that's given. If the GIS asks for > >> the "base" URL, it can still work, i.e. you pass it: > >>> > >>> http://myserver.com/wms?CUSTOM_PARAM=foo > >>> > >>> instead of > >>> > >>> http://myserver.com/wms. > >>> > >>> ncWMS does this already, in fact, with the DATASET parameter (which > >> isn't used in TDS-WMS). > >>> > >>> Cheers, Jon > >>> > >>> -----Original Message----- > >>> From: Kyle Wilcox [mailto:KWilcox@xxxxxxxxxxxxxx] > >>> Sent: 04 January 2011 15:10 > >>> To: 'Jon Blower'; thredds@xxxxxxxxxxxxxxxx > >>> Subject: RE: [thredds] Simple fix => much smaller TDS WMS > >> GetCapabilities size (for model output) > >>> > >>> I'd prefer a configurable setting rather than a custom URL parameter. > >> I try to avoid extending specifications if at all possible. No > >> existing clients will know about the additional parameter, and some > >> datasets won't benefit from start/stop/step. On the downside, the > >> GetCap could list all of the times for some datasets, and use > >> start/stop/step for some others. At least with a URL parameter, it > >> would be consistent. > >>> > >>> > >>> > >>> I took a simple stab at #1 a few weeks ago. The rounding isn't > >> triggered by a flag in the GetCapabilities request, it is instead > >> enabled by using a checkbox in the admin panel on each dataset > >>> > >>> It finds the smallest interval between all timesteps in the dataset > >> and then assumes that this interval is consistent throughout the > >> dataset. It steps through all of the timesteps and if the interval > >> between two adjacent timesteps is greater than the smallest found > >> interval, it ends the current "start/stop/step" and starts another. > >>> > >>>> From what I've seen, it works, but I haven't tested it at all. > >>> > >>> > >> https://github.com/asascience/ncWMS/commit/9e2925fc607a05d6484299e017d > >> b > >> 0180a2200fa4 > >>> > >>> > >>> --------- > >>> Kyle Wilcox, Engineer > >>> Applied Science Associates > >>> 55 Village Square Drive > >>> South Kingstown, RI 02879 > >>> p: (401) 789-6224 > >>> e: kwilcox@xxxxxxxxxxxxxx > >>> > >>> -----Original Message----- > >>> From: thredds-bounces@xxxxxxxxxxxxxxxx [mailto:thredds- > >> bounces@xxxxxxxxxxxxxxxx] On Behalf Of Jon Blower > >>> Sent: Tuesday, January 04, 2011 5:54 AM > >>> To: thredds@xxxxxxxxxxxxxxxx > >>> Subject: Re: [thredds] Simple fix => much smaller TDS WMS > >> GetCapabilities size (for model output) > >>> > >>> Hi all, > >>> > >>> I can certainly see that there is a problem that needs to be > >> addressed here (explicit lists of all individual TIME values cause the > >> Capabilities document to blow up). There are actually two approaches > >> to this, which could be used individually or in combination: > >>> > >>> 1) Use the syntax start/stop/period, potentially multiple times, to > >> define the TIME values instead of listing them explicitly. > >>> > >>> 2) Use Layer inheritance properties to define the time dimension > >>> once > >> only, if the same time axis is shared by all the children of a parent > >> layer: > >>> > >>> <Layer> > >>> <Title>My Model Output</Title> > >>> <!-- Non-displayable parent Layer --> > >>> <Dimension name="time"> ... values ...</Dimension> > >>> <Layer> > >>> <Title>sea_water_temperature</Title> > >>> <Name>TMP</Name> > >>> <!-- Inherits time axis from parent --> > >>> </Layer> > >>> <!-- More child layers --> > >>> <!-- Children can override the time axis if theirs is different > >> for some reason --> </Layer> > >>> > >>> The most concise possible Capabilities doc would be achieved by > >> combining both approaches. > >>> > >>> I feel that we should ensure that only those time values that are > >> actually present should appear in the Capabilities doc - I think > >> things get a bit confusing if the Capabilities doc advertises > >> "missing" times (what would the returned image from a missing time > >> look like?). I also agree with Bob Simons that the use of "nearest" > >> values is dangerous, even though it's in the spec (sorry Kyle) - the > >> client can always perform the nearest-neighbour calculation if this is > >> required, given the server's advertised capabilities. (Feel free to > >> disagree with me of course!) > >>> > >>> I can see two potential problems: > >>> > >>> 1. Solution 1 above is a bit tricky to implement in the general > >>> case, > >> avoiding the corner cases. (Solution 2 would actually be pretty easy > >> to implement.) > >>> > >>> 2. As Ethan and Roy have pointed out, third-party client support for > >> multidimensional WMS is, er, generally not great. It's hard enough to > >> find a client that supports TIME at all, never mind all the possible > >> syntaxes. I'm torn on this - in one respect it's not our problem, but > >> we don't want to cut out portions of the user base. > >>> > >>> So, after all this, I propose a solution: > >>> > >>> 1. Implement one or both measures above, ensuring that the > >> Capabilities document is accurate. This may involve being > >> conservative. The default Capabilities doc would be much smaller. > >>> > >>> 2. Allow clients to specify a URL parameter to GetCapabilities that > >> triggers the generation of a Capabilities document that *does* list > >> all the time values explicitly, allowing compatibility with some GIS > >> clients. (Clients usually require a URL to the Cap doc, which could > >> include this non-standard URL parameter. Or the parameter could be > >> considered part of the "base URL"). > >>> > >>> Does anyone have any thoughts on this before I start an > >> implementation? It's tempting to implement the "layer inheritance" > >> solution first since it's easiest; I think this would be effective in > >> TDS, where each Cap doc usually represents a single model run, which > >> will usually have a single time axis, shared among all variables. > >>> > >>> Happy New Year! > >>> Jon > >>> > >>> -- > >>> Dr Jon Blower > >>> Technical Director, Reading e-Science Centre Environmental Systems > >> Science Centre University of Reading, UK > >>> Tel: +44 (0)118 378 5213 > >>> http://www.resc.reading.ac.uk > >>> > >>> > >>> _______________________________________________ > >>> thredds mailing list > >>> thredds@xxxxxxxxxxxxxxxx > >>> For list information or to unsubscribe, visit: > >> http://www.unidata.ucar.edu/mailing_lists/ > >>> > >>> _______________________________________________ > >>> thredds mailing list > >>> thredds@xxxxxxxxxxxxxxxx > >>> For list information or to unsubscribe, visit: > >> http://www.unidata.ucar.edu/mailing_lists/ > >>> > >> > >> > >> -- > >> Matthias Müller > >> Dipl.-Geogr. | Research Associate > >> > >> Technische Universität Dresden > >> Geoinformation Systems > >> 01062 Dresden > >> > >> Phone: +49 351 463-31953 > >> Fax: +49 351 463-35879 > >> Mail: Matthias_Mueller@xxxxxxxxxxxxx > >> > >> www: http://tu-dresden.de/fgh/geo/gis > >> > >> ---------------------------------------------------------------------- > >> - > >> ------- > >> WhatsUp Gold - Download Free Network Management Software The most > >> intuitive, comprehensive, and cost-effective network management > >> toolset available today. Delivers lowest initial acquisition cost and > >> overall TCO of any competing solution. > >> http://p.sf.net/sfu/whatsupgold-sd > >> _______________________________________________ > >> Ncwms-users mailing list > >> Ncwms-users@xxxxxxxxxxxxxxxxxxxxx > >> https://lists.sourceforge.net/lists/listinfo/ncwms-users > > > > ------------------------------------------------------------------------------ > > WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. > > http://p.sf.net/sfu/whatsupgold-sd > > _______________________________________________ > > Ncwms-users mailing list > > Ncwms-users@xxxxxxxxxxxxxxxxxxxxx > > https://lists.sourceforge.net/lists/listinfo/ncwms-users > > > > > -- > Matthias Müller > Dipl.-Geogr. | Research Associate > > Technische Universität Dresden > Geoinformation Systems > 01062 Dresden > > Phone: +49 351 463-31953 > Fax: +49 351 463-35879 > Mail: Matthias_Mueller@xxxxxxxxxxxxx > > www: http://tu-dresden.de/fgh/geo/gis >
-- Matthias Müller Dipl.-Geogr. | Research Associate Technische Universität Dresden Geoinformation Systems 01062 Dresden Phone: +49 351 463-31953 Fax: +49 351 463-35879 Mail: Matthias_Mueller@xxxxxxxxxxxxx www: http://tu-dresden.de/fgh/geo/gis
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature
thredds
archives: