Geoapplications development http://rgeo.wikience.org Higher School of Economics, Moscow, www.cs.hse.ru
2 Agenda
3 Sources of geospatial raster data • • • • •
4 Challenges in managing raster data • • • • http://rasdaman.org/
5 Challenges in storing spatial raster data (slides taken from training 03)
6 Different geospatial raster types • • • • http://modis-atmos.gsfc.nasa.gov/MOD04_L2/grids.html http://meso-a.gsfc.nasa.gov/val/projects/gpm/swath/index.html
7 Model VS Storage (1) 1 2 3 4 1 1 2 2 3 4 3 4
8 Model VS Storage (2)
9 Our goals Desktop: Google Earth WMS or Quantum GIS
10 Our goals (2) Web: Godiva or other WMS/etc. tools
11 NetCDF (1) Multidimensional array http://www.narccap.ucar.edu/users/user-meeting-08/handout/netcdf-diagram.png
12 NetCDF (2) Multidimensional array https://trac.osgeo.org/gdal/raw- attachment/wiki/ADAGUC/ADAGUC_NetCDF_dimension_scales.jpg
13 File-based and BLOB-based storage approaches BLOB – Binary Large Object • data type in a RDBMS for a column • holds raw bytes • may be used to store geospatial raster data Examples: PostGIS raster, RasDaMan array File-based storage • Store raster data in their original formats • Perform access/computations on-the-fly or in-situ Pros: - error-prone import step is eliminated - reuse of previous work on format optimization
14 Raster data management systems • • http://geoserver.org/ • • http://postgis.net/ • http://rasdaman.org/ • • http://www.paradigm4.com/
15 NOAA TDS http://rasdaman.org/
16 Apache Tomcat Installation
17 setenv.bat set "JRE_HOME = c:\Program Files\Java\jdk1.8.0_25" set "JAVA_OPTS =%JAVA_OPTS% -Xmx4096m -Xms512m -server -Djava.awt.headless = true -Djava.util.prefs.systemRoot =%CATALINA_BASE% /content/thredds/javaUtilPrefs -Dtds.content.root.path =%CATALINA_BASE% /content/thredds" exit /b 0
18 Environment variables CATALINA_BASE CATALINA_HOME
19 Test installation Start Tomcat c:\apache-tomcat-9.0.0.M4\bin\startup.bat and surf to http://localhost:8080/
20 THREDDS Data Server Installation
21 Tomcat 8 feature • 06-Apr-2016 21:08:30.636 INFO [localhost-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive C:\apache-tomcat-9.0.0.M4\webapps\tds-4.6.5.war • 06-Apr-2016 21:08:32.678 WARNING [localhost-startStop-2] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/WEB-INF/lib/vecmath-1.5.2.jar] to the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
22 context.xml <Context> <!-- Default set of monitored resources. If one of these changes, the --> <!-- web application will be reloaded. --> <WatchedResource> WEB-INF/web.xml </WatchedResource> <WatchedResource> ${catalina.base}/conf/web.xml </WatchedResource> <Resources cachingAllowed= "true" cacheMaxSize= "100000" /> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> </Context>
23 tomcat-users.xml <role rolename= "manager-gui" /> <user username= "tomcat" password= "tomcat" roles= "manager-gui" />
24 war deployment • Copy tds-4.6.5.war c:\apache-tomcat-9.0.0.M4\webapps\ • Wait until deployment completes • Remove tds-4.6.5.war from c:\apache-tomcat-9.0.0.M4\webapps\ • Make sure c:\apache-tomcat-9.0.0.M4\content\ was created WAR = Web ARchive Tomcat web applications may be distributed as a single *.war file
25 war deployment (2) • Another way is to use GUI manager
26 Check installation http://localhost:8080/tds-4.6.5/ Warning: do not remove tds-4.6.5.war from the webapps folder after it has been deployed
27 Check installation (2) http://localhost:8080/manager/html/
28 Setting base URL for TDS c:\apache-tomcat-9.0.0.M4\webapps\tds-4.6.5\WEB-INF\ web.xml <!-- Provide the context path at init time (otherwise, not available till a request is made). --> <!-- Servlet 2.5 spec provides ServletContext.getContextPath(). But we aren't requiring Servlet 2.5 yet. --> <context-param> <param-name> ContextPath </param-name> <param-value> tds-4.6.5 </param-value> </context-param> http://www.unidata.ucar.edu/software/thredds/current/tds/reference/TomcatBehindProxyServer.html
29 Setting base URL for TDS (2) <context-param> <param-name> ContextPath </param-name> <param-value> tds-4.6.5 </param-value> </context-param>
30 Register Data in TDS
31 catalog.xml • Server-side XML to specify available data • c:\apache-tomcat-9.0.0.M4\content\thredds\thredds\catalog.xml • Initially it looks like (almost): <?xml version= "1.0" encoding= "UTF-8" ?> <catalog name= "Raster data collection" xmlns= "http://www.unidata.ucar.edu/namespaces/thredds/InvCatalog/v1.0" xmlns:xlink= "http://www.w3.org/1999/xlink" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.unidata.ucar.edu/namespaces/thredds/InvCatalog/v1.0 http://www.unidata.ucar.edu/schemas/thredds/InvCatalog.1.0.6.xsd" > <service name= "all" base= "" serviceType= "compound" > <service name= "odap" serviceType= "OpenDAP" base= "/thredds/dodsC/" /> <service name= "dap4" serviceType= "DAP4" base= "/thredds/dap4/" /> <service name= "http" serviceType= "HTTPServer" base= "/thredds/fileServer/" /> <service name= "wcs" serviceType= "WCS" base= "/thredds/wcs/" /> <!--service name="wms" serviceType="WMS" base="/thredds/wms/" /--> <!--service name="ncss" serviceType="NetcdfSubset" base="/thredds/ncss/" /--> </service>
32 catalog.xml (2) <service name= "dap" base= "" serviceType= "compound" > <service name= "odap" serviceType= "OpenDAP" base= "/thredds/dodsC/" /> <service name= "dap4" serviceType= "DAP4" base= "/thredds/dap4/" /> </service> <datasetRoot path= "test" location= "content/testdata/" /> <dataset name= "Test Single Dataset" ID= "testDataset" serviceName= "dap" urlPath= "test/testData.nc" dataType= "Grid" /> <dataset name= "Test Single Dataset 2" ID= "testDataset2" serviceName= "odap" urlPath= "test/testData2.grib2" dataType= "Grid" /> This does not actually work for me: location= "content/testdata/ Because path is different: c:\apache-tomcat-9.0.0.M4\content\thredds\thredds\public\testdata\ Anyway, we will make our own collection
33 catalog.xml (3) <datasetScan name= "Test all files in a directory" ID= "testDatasetScan" path= "testAll" location= "content/testdata" > <metadata inherited= "true" > <serviceName> all </serviceName> <dataType> Grid </dataType> </metadata> <filter> <include wildcard= "*eta_211.nc" /> <include wildcard= "testgrid*.nc" /> </filter> </datasetScan> <catalogRef xlink:title= "Test Enhanced Catalog" xlink:href= "enhancedCatalog.xml" name= "" /> </catalog>
34 threddsConfig.xml Enable WCS service (because in catalog.xml WCS service will not work without this server- global option) <!-- The WCS Service is off by default. Also, off by default (and encouraged) is operating on a remote dataset. --> <WCS> <allow> true </allow> <allowRemote> true </allowRemote> <scour> 15 min </scour> <maxAge> 30 min </maxAge> </WCS>
35 Add WMS layer to Google Earth
36 Add WMS layer to Google Earth
37 Add WMS layer to Google Earth
38 Correct URL using Godiva generated WMS URL Click “test image” on Godiva page http://localhost:8080/tds- 4.6.5/wms/test/testData.nc?LAYERS=Z_sfc&ELEVATION=0&TIME=2003- 09- 25T00%3A00%3A00.000Z&TRANSPARENT=true&STYLES=boxfill%2Frain bow&COLORSCALERANGE=- 50%2C50&NUMCOLORBANDS=20&LOGSCALE=false&SERVICE=WMS&V ERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application%2Fvnd.og c.se_inimage&FORMAT=image%2Fpng&SRS=EPSG%3A4326& BBOX=-135.33123756732,19.672744972339,- 31.54351738423,60.301526740558&WIDTH=256&HEIGHT=256
39 Correct URL using Godiva generated WMS URL Click “Properties”
Recommend
More recommend