Announcement

Collapse
No announcement yet.

Deploying a WMS

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Deploying a WMS

    My organization is considering purchasing the entire CONUS NAIP data set from USDA. Apparently one option is to get the data in JPEG2000(.jp2) format, with a 10X compression. This data set would be approx 4TBs. Our current applications read imagery from a tile server, in the old WWC# format with the leading zeros. One option would be to try to tile the 4TBs of imagery, but that would probably produce about 20TBs of tiles. That seems a little unwieldy. Another option would be to put the 4TBs of JP2 files on a server and dish them out with a WMS. Is this doable? Can anyone recommed a WMS that can do this? Can the WMS be put into a tile server mode so it responds to the same requests that our current tile server does. By the way, our legacy app likes JPG or PNG files. Thanks!

  • #2
    Originally posted by James_In_Utah View Post
    1. Can anyone recommed a WMS that can do this?
    2. Can the WMS be put into a tile server mode so it responds to the same requests that our current tile server does.
    Hi James, how is it going with your tiling of the FAA charts?

    1. MapServer and GeoServer
    Here is a link on WMS servers.
    http://forum.worldwindcentral.com/sh...wms#post104732
    Originally posted by heidtmare View Post
    If you think that your app could grow to use the additional capabilities of a WMS/WFS i'd go ahead and make the investment now, not to mention it gives you the ability to distribute your computing in the future.

    I WOULD NOT use the NASA WMS however, the worldwind guys are moving away from it in favor of supporting the community established WMS providers MapServer and GeoServer.
    For a set as large as NAIP pre tiling and the storage size would seem to be unrealistic so a WMS that does the tiling on request is the way to go.

    2. There are two basic forms of the request. One is for pre tiled images and the other is a WMS request where the tiles will be made on the server.
    You have worked with both types of requests on WWC# so it shouldn't be a problem for you.
    Neil
    http://www.nlneilson.com

    Comment


    • #3
      Hi Neil,
      The sectionals went great. Global Mapper made pretty quick work of it. It should be fairly easy for me to keep that set up to date. As far as the WMS, I just want to make sure that it will work with the USDA NAIP JP2000 files. Also, it would be great if the WMS could respond to the same requests that our tile server currently supports, so we don't have to modify any of our client apps. I notice in the documentation that MapServer does have a "Tile Server" mode, but it doesn't specifically say that it will serve up the imagery in the same way that our tile server does. We are still following the old WWC# directory structure with the leading zeros. I guess I will have to give it a try.
      Thanks,
      James

      Comment


      • #4
        It's good GlobalMapper worked OK for you.
        Did you have to do any extra clipping or has the FAA charts been modified so that is not necessary?
        In 2009 there was a bunch and in 2011 there was just a few. I and probably many others have suggested the text be moved from the top to the bottom.

        The leading "00"s should not be a problem as whatever WMS you choose adding a few lines of code to add them should not be a problem.

        You will need to modify the code for the NAIP layer for your server address of course and probably the request string to correspond to what your WMS needs.
        Your tile server setup probably has the request string that for the layer name, level and the tile file name with extension.

        For a WMS it's more of a request for the location in lat lon of the bounding box for each tile:
        Code:
        http://worldwind47.arc.nasa.gov/wms?service=WMS&request=GetMap&version=1.3&srs=E
        PSG:4326&layers=NAIP&styles=&transparent=TRUE&format=image/dds&width=512&height=
        512&bbox=-117.5625,34.875,-117.0,35.4375
        Last edited by nlneilson; 02-23-2013, 04:17 AM.
        Neil
        http://www.nlneilson.com

        Comment


        • #5
          Hi Neil,
          Using global mapper, I was able to add the sectionals starting in the upper right corner of the US, and add to the left, then down, so that only a couple of areas have the map boundaries visible. It worked really well and only took my old POC laptop a couple of hours to do. I had the same issue as you with the area of alaska on the other side of the date line.

          Comment


          • #6
            When I was modifying the dstile code a considerable amount of time was spent on the dateline issue but gave up on that.

            Do you still have the curved gap between the North and South half of Ketchican?

            You are real good with C# but have you done much with C/C++?
            If I had a lot of free time I would consider porting the globe display portion of WWJ to a C++ .dll/.os library that could be used with C#, java, etc..

            knji is trying to port it to C#
            http://forum.worldwindcentral.com/sh...ad.php?t=34836
            Neil
            http://www.nlneilson.com

            Comment


            • #7
              I'll have to look at Ketchican when I get back to work on Monday. I didn't notice a problem there.

              I did most of my development in C++ for years before C#. It's been about 10 years since I did any real development in C++ though. Why are you interested in porting the display to C++? For performance?

              Comment


              • #8
                Yes performance and:
                C++ is more powerful, faster, garbage collection,not limited as java is for heap space, it is compiled rather than compiled at run time, runs directly with openGL rather than through jogl, runs on most OSs WITHOUT as many problems, etc., etc..

                C/C++ which is considered the same language by many is twice as popular as any other followed by java and C#.

                I was hired as C++/Python developer, but I have to use Java regularly too (and have bad dreams afterwards ).

                Honza
                http://www.ultimatepp.org/forum/inde...java#msg_38473

                edit: The WWJ team has done a great job but there could be advantages with the display of the globe in C++.
                Last edited by nlneilson; 02-24-2013, 06:56 AM.
                Neil
                http://www.nlneilson.com

                Comment


                • #9
                  Unless something has changed, C++ doesn't have a garbage collector. That's a C# concept. The coder is responsible for allocating the freeing memory. Great if you don't forget to free it. I agree a C++ app should run circles around a similar C# or java app. More powerful, in my opinion means being able to do more, with less code. Which to me describes C#, but then again you are stuck with M$. I don't really consider C and C++ the same language. Similar syntax but different philosophy.

                  Comment


                  • #10
                    Originally posted by James_In_Utah View Post
                    C++ doesn't have a garbage collector.
                    The coder is responsible for allocating the freeing memory.

                    I agree a C++ app should run circles around a similar C# or java app.

                    C#, but then again you are stuck with M$.

                    I don't really consider C and C++ the same language.
                    Similar syntax but different philosophy.
                    Yes but you do have positive control
                    YES it is faster
                    Yes and it can be run on Win, Linux, Mac OS, etc..
                    C and C++ code can be used directly in the same app.

                    I usually use the M$ compiler but can use others.

                    C/C++ is not under the thumb of M$, Larry Ellison or - -
                    Last edited by nlneilson; 02-25-2013, 02:51 AM.
                    Neil
                    http://www.nlneilson.com

                    Comment


                    • #11
                      OK, I officially need help. I'm trying to deploy a MS4W, on a server on a DMZ at work. I got it installed, and when I hit the server URL, I see the Map Server info page, so I know at least that part is working.

                      I would like to serve tiles up dynamically to legacy clients that don't know how to read data from a WMS. Is this something that MS4W will be able to do?

                      I'm currently trying to get the MAP file correct. I thought I'd start by trying to server up 4 JP2 images of Hill AFB that USDA sent me. I followed directions found in the forum here on how to add an index of the files to a shape file using gdaltindex. That seemed to work.

                      Now when I try to hit the url I get an error saying to the effect of MissingParameterValue locator = "service".

                      Anyway, if anyone has a sample MAP file, for MS4W that will serve up jpegs any help would be greatly appreciated.

                      I also have the base PNG files for the Blue Marble. I would also like to serve these up to clients. They are not geo refernced, so how would I tell Map Server where they belong on the globe?

                      Thanks,
                      James

                      Comment


                      • #12
                        Okay, I got the MS4W set up and working well serving up the NAIP JP2 files and several other sets. The problem I'm having now is the response time when trying to serve Blue Marble from the origional JPGs or PNGs. At work, on a Server2003R2 box it takes about 10 seconds per image. At home on my 10 year old desktop it takes about 35 seconds per image. The JPGs are about 55MBs, and the PNGs are about 250MBs each. Has anyone else tried serving these up dynamically or does everyone serve them up from pre-tiled sets?

                        Comment


                        • #13
                          Are you still using the WWC# code or WWJ?

                          They are different. In WWJ almost all are NOT pre tiled.
                          A .java layer must create the request string for the pre tiled.

                          Otherwise it is sent through some WMS code and makes a request as mentioned in post #4. There may be a way in WWJ to request pre tiled in another way but I have not found it and posts have not found a way.

                          10 seconds may be OK for each as several tiles are processed concurrently.
                          The 15 seconds is probably because of your internet speed as the the time on a WMS server should be the same unless you have a local WMS server on a slower machine.
                          Neil
                          http://www.nlneilson.com

                          Comment


                          • #14
                            I've tried hitting it with sevaral WMS clients, including WWC#, WWJ, and GlobalMapper. It's really slow. I did read on the MapServer docs about ways to optimize performance by pre-tiling. I'll have to check to see if that applies. I was hoping to be able to serve these up dynamically to save on space, but it looks like that won't be the case.

                            Comment


                            • #15
                              Yes pre tiling them will be much much faster.

                              It's like an external cache.
                              Last edited by nlneilson; 03-10-2013, 12:17 AM.
                              Neil
                              http://www.nlneilson.com

                              Comment

                              Working...
                              X