Blake, Probably not the answer you're looking for, but we cheated a little and gridded our surface data into nice orderly points, this allows for much quicker response times, and nice orderly averaging between any two (or four) points in the grid. We're only using a 50k x 35k grid (on the smallish side) but it runs very quickly. It ended up being our own custom service in the end, but I've contemplated putting it out opensource, but it's only used for a single layer (dataset) here, and it seemed like a better idea to combine it with some other similar query tools at some point instead.
We use it to feed AutoCAD (autoLISP and LandXML), X3D clients, and probably WFS in the future. It only spits out a GRID right now, but adding in support for dynamic line following and point queries are in the plans. It's all templated output very similar to MapServer templating. Here is a 128x128 grid as AutoLSIP output (about 1.11sec according to FF Firebug in our network) : http://gis.ci.stpaul.mn.us/gis/mirage/cgi-bin/mirage.pl?output=lisp&mapsize=128+128&mapext=566000+152500+566700+153200 ( http://gis.ci.stpaul.mn.us/gis/mirage/cgi-bin/mirage.pl?output=lisp&mapsize=128+128&mapext=566000+152500+566700+153200 ) I can't remember if this is available outside the firewall, so here is an example of the result: (defun elevationgrid (/) (setq URLRequest "output=lisp&mapsize=128+128&mapext=566000+152500+566700+153200") (setq ViewPoints (list '("VIEWPOINT" "ORIENTATION" "POSITION") '("Top View" "1 0 0 -1.5708" "32768 6553.6 32768") '("Oblique View" "1 0 0 -.7854" "128 150 128") ) ;; LIST ) ;;VIEWPOINTS (setq ElevationGrid (list '("creaseAngle" "solid" "xDimension" "zDimension" "xSpacing" "ySpacing") '("3.14159" "false" "128" "128" "5.46875" "5.46875") '( -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 159.5 161.6 161.6 161.6 161.6 161.6 161.6 163.7 163.7 163.7 165.9 165.9 165.9 168 168 170.1 170.1 172.3 172.3 174.4 174.4 176.5 176.5 178.7 180.8 185.1 185.1 187.2 191.2 193.6 193.6 197.6 200 202.1 204.1 206.1 206.1 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 206.1 206.1 206.1 204.1 202.1 202.1 200 200 200 202.1 202.1 202.1 202.1 204.1 204.1 204.1 204.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 206.1 204.1 204.1 204.1 204.1 202.1 202.1 202.1 202.1 202.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 202.1 200 197.6 195.7 193.6 191.2 191.2 191.2 191.2 191.2 191.2 191.2 191.2 193.6 193.6 193.6 193.6 195.7 195.7 195.7 197.6 159.5 161. . . . . . . . . <stuff deleted> . . . . . . . . .100 100 102 102 102 102 100 102 102 102 102 102 102 102 102 102 102 104.2 106.3 106.3 108.4 108.4 110.6 112.7 112.7 114.8 114.8 117 117 119.1 119.1 121.2 123.4 125.5 125.5 125.5 127.6 129.5 129.5 131.9 131.9 134 135.9 135.9 140.4 140.4 142.4 144.4 144.4 144.4 144.4 144.4 146.8 146.8 148.8 148.8 148.8 153.1 150.9 150.9 153.1 155.2 157.3 161.6 163.7 168 170.1 172.3 176.5 176.5 178.7 182.9 185.1 189.3 191.2 193.6 200 202.1 202.1 202.1 202.1 202.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 206.1 206.1 206.1 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 104.2 104.2 104.2 106.3 106.3 108.4 110.6 110.6 112.7 112.7 114.8 117 117 119.1 119.1 121.2 123.4 123.4 125.5 127.6 127.6 127.6 129.5 131.9 134 134 135.9 138 138 140.4 142.4 144.4 144.4 144.4 144.4 144.4 146.8 148.8 150.9 153.1 150.9 148.8 148.8 150.9 150.9 153.1 159.5 161.6 163.7 165.9 168 172.3 174.4 176.5 180.8 182.9 187.2 189.3 191.2 195.7 195.7 195.7 197.6 197.6 202.1 202.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 204.1 206.1 206.1 206.1 206.1 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 208.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 210.5 ) ) ;; List ) ;; Elevationgrid ) ;; Defun >>> Blake Crosby <[email protected]> wrote: Hello! Wondering if a few of you can provide some insight here: Problem: Given a linestring, return the elevation data along that linestring from CDED data (ASCII DEM). I'm using Mapserver 5.4.2 I'm using PHP Mapscript and queryByPoint to get values from my DEMs. However, the performance seems really slow. Essentially here is how I have things set up: Fetch Linestring from postgis, and select N points from the string every Y distance (ie, get the points every 1 km). Loop through each point and do a queryByPoint() to get the value from Mapserver. I've tried using a tilecache, yo no avail. It still takes over 60 seconds to query approx 200 points. I would like to use the 50k CDED dems, however the performance is even worse. So i'm using the 250k ones, approx 4,280 files. Any tips on improving performance? Blake _______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
