I have been using a python script that can read Data from Orthophoto(*.tiff) of size 300Mb-2Gb. But this is taking 32s per request of lat-long, which is not ok.

I have different Orthophotos with Different data like DSM, DTM, NDVI etc of same location at different times.

What would be an ideal way or tools to do this? This has to be done as a program, as the this needs to be replicated for various locations.

Currently I am evaluating storing this data in DB against lat-long, with all values of DSM, DTM, NDVI etc across time being associated with the lat-long key in mongo or PostGIS.

Is there a better way of solving this issue?

  • What exactly do you mean by a "request"? If your script requires opening the image and loading it into memory then I can see how it would take a very long time. If the image cannot simply be loaded once and stay in memory then maybe you should consider breaking each image into tiles which correspond to a polygon grid. When the user clicks, check it against the polygons first and then call up the images which correspond to it – wfgeo Jan 19 '19 at 13:16
  • By requests, I meant this feature has to be deployed as a web service. That’s a good suggestion. In this application we will have 100s of such images. I was wondering if there was any other suggested representation of tiff file in any dB systems. So I can query them without loading images itself. – Sumit M Asok Jan 19 '19 at 13:48
  • 1
    Is it a service that you have built yourself? Geoserver is an open source server application which implements exactly this kind of functionality (as well as many other standardized geographic web services) with lots of extra tools for content management, caching and etc. geoserver.org I think "WCS" is right for your use case docs.geoserver.org/latest/en/user/services/wcs/reference.html – wfgeo Jan 19 '19 at 13:52
  • 1
    If you are interested in serving data up as a web service, then Geoserver would be the way to go. If you are interested in doing further analysis, mapalgebra, etc, combining one or more layers, then using Postgis could be an option. So, long as you tile the rasters on load (raster2pgsql -t switch) this will be very fast. This could also be used as a backend to Geoserver, solving both problems at once. – John Powell Jan 21 '19 at 7:12
  • @1saac yes, I was planning to create a server. geoserver is a good suggestion, I will check that out. Thank you. – Sumit M Asok Jan 21 '19 at 9:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.