Re: [thredds] WMS capabilities

Hi Ethan,
The TDS remote managent was pretty useful!!. I found one geotools system property on our server:

org.geotools.referencing.forceXY = true

I also found some info about it here:
http://docs.codehaus.org/display/GEOTDOC/The+axis+order+issue?showComments=false
So I set the org.geotools.referencing.forceXY to false from the Tomcat startup script and I had all the CRS and SRS tags in the capabilities documents and Geoserver seems to work properly too.
Besides, I did another change in our geotools plugins for TDS .
Here, in Galicia (northwest corner of Spain), many times we use the EPSG:23029 (UTM zone 29 north), acording with the capabilities this CRS is available for WMS requests but when I tried a getMap with it I got a 500 error as reponse and I had this in the log:

request=GetMap&service=WMS&version=1.3.0&layers=temp&CRS=EPSG:23029&bbox=465016.146875,4618098.1,697420.915625,4860623.9&width=500&height=500&styles=BOXFILL/alg&format=image/jpeg&time=2009-04-01T08:00:00.000Z& HTTP/1.1" 2009-08-24T12:22:30.610 +0200 [ 5521801][ 113] INFO - thredds.server.wms.WMSController - Request Completed - 500 - -1 - 60 org.geotools.factory.FactoryNotFoundException: No factory of kind "CoordinateOperationAuthorityFactory" found. at org.geotools.factory.FactoryRegistry.getServiceProvider(FactoryRegistry.java:386) at org.geotools.factory.FactoryCreator.getServiceProvider(FactoryCreator.java:137) at org.geotools.referencing.ReferencingFactoryFinder.getAuthorityFactory(ReferencingFactoryFinder.java:216) at org.geotools.referencing.ReferencingFactoryFinder.getCoordinateOperationAuthorityFactory(ReferencingFactoryFinder.java:472) at org.geotools.referencing.operation.AuthorityBackedFactory.<init>(AuthorityBackedFactory.java:126)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.geotools.factory.FactoryCreator.createServiceProvider(FactoryCreator.java:279) at org.geotools.factory.FactoryCreator.createSafe(FactoryCreator.java:247) at org.geotools.factory.FactoryCreator.getServiceProvider(FactoryCreator.java:198) at org.geotools.referencing.ReferencingFactoryFinder.getFactory(ReferencingFactoryFinder.java:192) at org.geotools.referencing.ReferencingFactoryFinder.getCoordinateOperationFactory(ReferencingFactoryFinder.java:319) at org.geotools.referencing.operation.BufferedCoordinateOperationFactory.getBackingFactory(BufferedCoordinateOperationFactory.java:204) at org.geotools.referencing.operation.BufferedCoordinateOperationFactory.<init>(BufferedCoordinateOperationFactory.java:163) at org.geotools.referencing.operation.BufferedCoordinateOperationFactory.<init>(BufferedCoordinateOperationFactory.java:151)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.geotools.factory.FactoryCreator.createServiceProvider(FactoryCreator.java:279) at org.geotools.factory.FactoryCreator.createSafe(FactoryCreator.java:247) at org.geotools.factory.FactoryCreator.getServiceProvider(FactoryCreator.java:198) at org.geotools.referencing.ReferencingFactoryFinder.getFactory(ReferencingFactoryFinder.java:192) at org.geotools.referencing.ReferencingFactoryFinder.getCoordinateOperationFactory(ReferencingFactoryFinder.java:319) at org.geotools.referencing.CRS.getCoordinateOperationFactory(CRS.java:206)
   at org.geotools.referencing.CRS.findMathTransform(CRS.java:906)
at uk.ac.rdg.resc.ncwms.datareader.HorizontalGrid.<init>(HorizontalGrid.java:127) at uk.ac.rdg.resc.ncwms.datareader.HorizontalGrid.<init>(HorizontalGrid.java:99) at thredds.server.wms.responses.WmsGetMap.processRequest(WmsGetMap.java:90) at thredds.server.wms.WMSController.handleRequestInternal(WMSController.java:266)
   .....

It seemed to me another geotools issue and after changing the gt2-epsg-wkt-2.4.0 plugin for the gt2-epsg-hsql-2.4.0 (adding the hsqldb-1.8.0.7.jar was also needed ) it worked. I did this change just because the epsg-wkt was deprecated:
http://javadoc.geotools.fr/2.4/org/geotools/referencing/crs/EPSGCRSAuthorityFactory.html
Here are two sample requests, one with CRS:84:
http://limia.meteogalicia.es/thredds/wms/modelos/WRF/diario/20090401/wrf_arw_det_20090401_04km_00Z_0d.nc?request=GetMap&service=WMS&version=1.3.0&layers=temp&CRS=CRS:84&bbox=-11.261331695726343,40.421302033295945,-5.101928395629246,45.230011083267385&width=500&height=500&styles=BOXFILL/alg&format=image/jpeg&time=2009-04-01T08:00:00.000Z
and another with EPSG:23029:
http://limia.meteogalicia.es/thredds/wms/modelos/WRF/diario/20090401/wrf_arw_det_20090401_04km_00Z_0d.nc?request=GetMap&service=WMS&version=1.3.0&layers=temp&CRS=EPSG:23029&bbox=465016.146875,4618098.1,697420.915625,4860623.9&width=500&height=500&styles=BOXFILL/alg&format=image/jpeg&time=2009-04-01T08:00:00.000Z

Cheers!




Ethan Davis wrote:
Hi Marcos,

I don't know geotools at all so I'm kind of pulling this out of thin
air. What came to mind, seeing as this seems to be a cross-webapp
problem, was this snippet from some Spring javadocs:

    "Some containers (like Tomcat) do not keep system properties
    separate per web app."

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/util/Log4jWebConfigurer.html

So, I was wondering if geotools uses system properties and if TDS/ncWMS
and Geoserver somehow are mucking with the same system properties.

I'm not seeing any geotools specific system properties on our server. If
there are any on your server running Geoserver, it might be that
TDS/ncWMS assumes the defaults and Geoserver sets some specific properties.

If you have the TDS remote management setup
(http://www.unidata.ucar.edu/projects/THREDDS/tech/reference/RemoteManagement.html),
you can get a list of system properties from the admin page
(http://server/thredds/admin/debug) by clicking on the "Show Server
info" link in the "General" section.

Ethan

Marcos Hermida wrote:
Hi Pauline!
Sorry for the slow reply but I was on holiday ;-)
I have installed an alone thredds on a Apache-Tomcat and it worked fine!!!
The problem comes after deploying Geoserver 1.7.5 on the same Tomcat
server. After that the CRS and SRS tags are missing again.
I think it might be something related with geotools. Somehow THREDDS
server is mixing up the Geoserver's geotools settings, which uses the
gt-epsg-hsql-2.5.6, with its own settings which are using the
gt2-epsg-wkt-2.4.0.
As the CRS codes are loaded in the HorizontalGrid datareader with the
org.geotools.referencing.CRS class through its method getSupportedCodes,
I think this is the method that fails but it doesn't report any problem:
http://javadoc.geotools.fr/2.4/org/geotools/referencing/CRS.html#getSupportedCodes(java.lang.String)

so I don't find any error in the logs and the variable supportedCrsCodes
in the capabilities_xml.jsp is just empty:

2009-08-19T10:50:41.619 +0200 [   2227738][      11] DEBUG -
org.springframework.web.servlet.view.JstlView - Rendering view with name
'capabilities_xml' with model {supportedCrsCodes=[], layerLimit=1,
featureInfoFormats=[Ljava.lang.String;@12b523c, legendHeight=264,
wmsBaseUrl=http://localhost:8080/thredds/wms/modelos/WRF/diario/20090330/wrf_arw_det_20090330_36km_00Z_0d.nc,
lastUpdate=2009-03-30T09:05:03.000+02:00,
layers=[uk.ac.rdg.resc.ncwms.metadata.VectorLayerImpl@124181b,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@aaca8a,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@d74b31,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@89848d,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@5d4a62,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@be8e12,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@6159c4,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@14c92a7,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@3040c5,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@1ec459b,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@cdf450,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@162b8ce,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@52fdeb,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@9c6c30,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@182eca8,
uk.ac.rdg.resc.ncwms.metadata.LayerImpl@7f3159],
datasetTitle=/home/METEOGALICIA/marcos.hermida/meteo/modelos/data/WRF/20090330/wrf_arw_det_20090330_36km_00Z_0d.nc,
supportedImageFormats=[image/jpeg, image/png,
application/vnd.google-earth.kmz, image/gif], legendWidth=110,
config=uk.ac.rdg.resc.ncwms.config.Config@80f252, paletteNames=[alg,
redblue, alg2, greyscale, ncview, occam, rainbow, sst_36, ferret,
occam_pastel-30]} and static attributes {}


and the GetCapabilities request works fine but without CRS tags (nothing
to iterate over the supportedCrsCodes variable).
I really don't know how the geotools work so I'm probably wrong but so
far it's all I could find.

Thanx!

Pauline Mak wrote:
Hi Marcos,

Would you be able to turn on debug on your machine?  Did your server
have any error messages in the log?  It should be in the
$TOMCAT_HOME/content/thredds/logs/server/threddsServlet.log file.

I had a clean install of the thredds app (removed the thredds.war and
thredds directory from $TOMCAT_HOME/webapps) and it generated the
attached XML file (sorry, I forgot to include it last time).

Yet to look at the 500 error...

Cheers,

-Pauline.

Marcos Hermida wrote:
Hi Ethan!
I answered last Pauline's e-mail without copy to the list, that was:
-----------
Hi Pauline!
This is pretty wierd because when I try a GetMap (vs 1.3.0) request
with CRS=CRS:84 from a web browser I got a file:
http://limia.meteogalicia.es/thredds/wms/modelos/WRF/diario/20090401/wrf_arw_det_20090401_36km_00Z_3d.nc?service=WMS&version=1.3.0&request=GetMap&LAYERS=temp&CRS=CRS:84&BBOX=-49.18259341789055,24.03791184287805,18.788995948788816,56.066076511429685&styles=&format=image/png&WIDTH=500&HEIGHT=500

despite I don't have CRS tags in the capabilities file.
Which file have you downloaded?
Anyway, if when you ran the file with your TDS you got the CRS it's
likely there is something wrong with our Apache Tomcat or TDS
settings, I'll check that.
BTW, I've updated the TDS to version 4.0.24 - 20090724.2259 (latest,
I guess) and the CRS is still missing!
Thanx, I really appreciate your help!!!
---------------------
And regarding yours, I downloaded the grib file from the motherlode
server and ran it on our server:
http://limia.meteogalicia.es/thredds/catalog/testData/catalog.html?dataset=TEST_DATA/GFS_CONUS_80km_20090729_1200.grib1

but  I  didn't  get  any CRS so I definitely think that there is
something wrong with our server settings rather than some problem
with the files.
I'll be on holiday a couple of weeks, so I will resume the work on
this after it.

Thanx for your help,
Cheers, Marcos.



Ethan Davis wrote:
Another quick note ...

The following dataset on our server is also on a Lambert Conformal
projection and the WMS does list lots of CRS:

http://motherlode.ucar.edu:8080/thredds/wms/fmrc/NCEP/GFS/CONUS_80km/files/GFS_CONUS_80km_20090729_1200.grib1?service=WMS&version=1.3.0&request=GetCapabilities


here's the OPeNDAP DAS:

http://motherlode.ucar.edu:8080/thredds/dodsC/fmrc/NCEP/GFS/CONUS_80km/files/GFS_CONUS_80km_20090729_1200.grib1.das


which contains a similar Lambert_Conformal section as with Marcos'
dataset (below) but it has different parameter values (maybe more
standard?) and lots of other information from the GRIB source.

Ethan

Ethan Davis wrote:
Hi Marcos, Pauline,

I'm not seeing any CRS elements in the GetCapabilities document at
this
link:

http://limia.meteogalicia.es/thredds/wms/modelos/WRF/diario/20090331/wrf_arw_det_20090331_36km_00Z_1d.nc?service=WMS&version=1.3.0&request=GetCapabilities


I just talked to Jeff, one of the IDV developers, and that seems to be
the problem the IDV is tripping over (though he just added code to
default to "CRS:84" if none is found). I'm guessing that is the
problem
Marcos saw for the other WMS clients as well.

I'm wondering if the projection is getting lost somehow for this
dataset. The project is Lambert Conformal, here's the OPeNDAP DAS
snippet for the projection variable:

    Lambert_Conformal {
        String grid_mapping_name "lambert_conformal_conic";
        Float64 longitude_of_central_meridian -14.100000381469727;
        Float64 standard_parallel 43.0, 43.0;
        Float64 latitude_of_projection_origin 24.22800064086914;
        Float64 false_easting 2182.62935;
        Float64 false_northing -269.65597;
    }

The netCDF-Java library, so ToolsUI (as Marcos mentioned) and IDV,
recognize the grid. Though whether they use the projection information
or the lat/lon variables isn't clear.

I'm not going to be able to dig into this any further until at
least end
of next week. Pauline, Jon, I'm wondering (from my hazy
understanding of
the ncWMS code) if the projection somehow fails to get mapped into
a CRS
that GeoTools recognizes and it then does not default to try the
lat/lon
grid that is also given in the dataset.

Ethan

Pauline Mak wrote:
Hi Marco,

I've downloaded the file and ran it with the latest version of
TDS.  The
GetCapabilities XML generated has been attached - it does included
the
CRS (and I also tried 1.1.1, and that gave me a list of SRS). Perhaps
you can give this a try?  Google Earth was able to find all the
layers
and palettes.

I've also tried to apply a GetMap request to the downloaded file, but
that's giving me a 500 error:

java.lang.ArrayIndexOutOfBoundsException: 0
    at ucar.ma2.Index.setDim(Index.java:562)
    at ucar.ma2.Index.set(Index.java:651)
    at
uk.ac.rdg.resc.ncwms.datareader.DataChunk.getValue(DataChunk.java:67)
    at
uk.ac.rdg.resc.ncwms.datareader.DefaultDataReader.populatePixelArray(DefaultDataReader.java:209)


.....

I'll keep investigating and let you know if I find why this is so :)

Cheers,

-Pauline.

Marcos Hermida wrote:
Hi Pauline, Ethan!
I've opened the netCDF files with the toolsUI and the data is
recognized as gridded data and is displayed perfectly. I also tried
with the IDV via OPeNDAP and it worked fine as well.
The fileServer isn't enabled for all datasets because many of
them are
aggregations.
Usually, our models' daily outputs have one file per forecast day
and
grid and we have set up (or at least tried it :-) ) two kind of
aggregations:
one in each daily output aggregating all the forecast day files
in one
single dataset per grid  and the other aggregates all the daily
outputs with the same forecast offset (only offset 0 so far) for
each
grid.
For the WRF daily outputs I've changed the catalog, so now all the
files are available via fileServer:
http://limia.meteogalicia.es/thredds/catalog/modelos/WRF/diario/catalog.html


You can also download the WW3 files:
http://limia.meteogalicia.es/thredds/catalog/modelos/WW3/test/catalog.html




Thanx!!

Pauline Mak wrote:
Hi Marco,

I was able to load your URL - seems like the GetCapabilities XML
document doesn't contain coordinate systems.  I can't seem to
download any of the files... if you can either email me one of
them,
or enable fileServer, then I can download one to take a better
look.

Thanks,

-Pauline.

Ethan Davis wrote:
Hi Marcos,

I'm getting a 500 response from the URL you gave. So, I wasn't
able to
look at your data.

One quick suggestion, make sure your data is recognized as
gridded data
by the netCDF-Java library. You can test that with the ToolsUI
(available from the netCDF-Java home page). Try opening your
data file
in the "FeatureTypes/Grids" tab of ToolsUI.

Or, if the data is available from the TDS via OPeNDAP, try
opening that
in the IDV (not through the WMS interface). Or you could open
it as a
local file.

Regards,

Ethan

Marcos Hermida wrote:
Hi all!
I've recently installed the latest version of TDS (4.0.23)
and  set up
some catalogs ( http://limia.meteogalicia.es/thredds/ )
When I tried to display some data with IDV through WMS I got a
message
which says "No compatible SRS found". I've also tried it with other GIS clients (QGIS, GoogleEarth, ArcView) and I
got  similar messages.
I think it might be that in the capabilities xml document
delivered in
the getCapabilities request the SRS (WMS version 1.1.0) or CRS
(WMS
version 1.3.0) tags are missing so the GIS clients are unable to
render
the maps or there is something wrong with our datasets?


Thanx!
_______________________________________________
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/




  • 2009 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the thredds archives: