thanks for that Peter

On Thu, Jul 22, 2010 at 9:35 AM, Peter Baumann <
p.baum...@jacobs-university.de> wrote:

>  Sebastian,
>
> as it will take some time until we complete our performance evaluation,
> here a quick response taken from the log file on my notebook. I have run a
> few rasql queries (while all other demon stuff plus my desktop apps were
> running as well):
>
> cold access to 3 images of 256x211 8bit greyscale:
> --- snip -------------
> [2010-07-22 10:11:35] request from 127.0.0.1
> Request: executeQquery 'select mr from mr'...parsing...checking
> semantics...optimizing (level 3)...No optimization library found
> evaluating...ok, result type 'set <marray <char, [0:255,0:210]>>', 3
> element(s).
> [2010-07-22 10:11:35] request completed; *request time=0.049s*
> --- snip -------------
>
> same, hot access:
> --- snip -------------
> [2010-07-22 10:16:27] request completed; *request time=0.007s*
> --- snip -------------
>
> accessing a 2D slice 512x512 (pixel type: unsigned short) from a *3D
> weather data cube* 16384x144x73:
> --- snip -------------
> [2010-07-22 10:25:20] request from 127.0.0.1
> Request: executeQquery 'select m[0:511,0:511,0] from
> ten_metre_U_wind_component as m'...parsing...checking semantics...optimizing
> (level 3)...No optimization library found
> evaluating...ok, result type 'set <marray <ushort, [0:511,0:143]>>', 1
> element(s).
> [2010-07-22 10:25:21] request completed; *request time=0.290s*
> --- snip -------------
>
> accessing a 3D subcube 100x100x73 from same cube:
> --- snip -------------
> [2010-07-22 10:26:49] request from 127.0.0.1
> Request: executeQquery 'select m[0:99,0:99,*:*] from
> ten_metre_U_wind_component as m'...parsing...checking semantics...optimizing
> (level 3)...No optimi
> zation library found
> evaluating...ok, result type 'set <marray <ushort, [0:99,0:99,0:72]>>', 1
> element(s).
> [2010-07-22 10:26:49] request completed; *request time=0.293s*
> --- snip -------------
>
> extracting a 1024x73 x/t slice from same cube:
> --- snip -------------
> [2010-07-22 10:28:27] request from 127.0.0.1
> Request: executeQquery 'select m[0,0:1023,*:*] from
> ten_metre_U_wind_component as m'...parsing...checking semantics...optimizing
> (level 3)...No optimization library found
> evaluating...ok, result type 'set <marray <ushort, [0:143,0:72]>>', 1
> element(s).
> [2010-07-22 10:28:28] request completed; *request time=0.289s*
> --- snip -------------
>
> As you see, slicing in all 3 dimensions delivers roughly the same times
> (although tiling has not been optimized).
>
> laptop specs:
> CPU: Intel(R) Core(TM)2 Duo CPU     T8300  @ 2.40GHz
> Mem:   2GB (swap off)
> Linux floridita 2.6.32-23-generic #37-Ubuntu SMP Fri Jun 11 07:54:58 UTC
> 2010 i686 GNU/Linux
> rasdaman running without optimization package (cf log).
>
> Of course not a scientific test (that will follow), but it may give an
> idea.
>
> cheers,
> Peter
>
>
>
> On 07/21/2010 11:00 AM, Peter Baumann wrote:
>
> Sebastian,
>
> it's a XEON. Your question comes at the right time, we are in the process
> of compiling performance data this summer. I will soon post detail info
> here.
>
> Loading 100k x 150k pixels is no problem. You load piecemeal, and the
> system will align with its internal tiling + maintain the image pyramid.
>
> 10 years back we have loaded the whole ortho image mosaic of Bavaria into
> the database (server was a desktop PC of about 1000 EUR), that was 600 GB
> compressed (losslessly). At that time, import of an 230 MB image took about
> 2min (array placement, re-tiling of input, index maintenance, compression,
> and this for all pyramid levels). Read access, OTOH, was about 150ms. A few
> years later the Thuringia Mapping Agency, again with a desktop PC as a
> server, verified that access times are stable under a load of about 15
> concurrent users challenging the system with WMS type interactive browsing.
>
> For another mapping agency we have set up a database containing ortho
> image, 30+ thematic raster layers, DEM. Access was via WMS, the rasdaman
> system delivered a single image for display (Javascript was not what it is
> today...). This included on-the-fly classification of the DEM and styling
> the thematic layers.
>
> So we have already done complete raster servers for several German States.
>
> BTW, standards: We have established the OGC Web Coverage Processing Service
> (WCPS) standard which lifts the rasdaman concept of a raster querfy language
> to an OGC standard. Being editor of currently 9 geo raster service specs in
> OGC we also pursue reference implementations on the basis of rasdaman. See
> www.earthlook.org for demos.
>
> -Peter
>
> PS: Should data really exceed disk capacity (hard to believe today) then we
> have a PhD thesis work which has implemented transparent tape cabinetaccess.
>
>
>
>
> On 07/21/2010 09:37 AM, Sebastian E. Ovide wrote:
>
>
>
> On Tue, Jul 20, 2010 at 5:08 PM, Peter Baumann <
> p.baum...@jacobs-university.de> wrote:
>
>>  On 07/20/2010 05:47 PM, Pierre Racine wrote:
>>
>>  Since we have this bug with big rasters,
>>
>>
>>  proven, any-size, ... ;-)
>>
>
> what do you mean ? were you able to load a raster of 100kx150k ?
>
>
>>
>> Who is proven? Well, running a dozen-TB seamless mosaic on PostgreSQL for
>> many years, having online-demos available since years, etc... you decide, in
>> comparison.
>>
>>
> Peter, how big is your cluster to support dozen of TB ? and how fast are
> the queries ? (for example a simple lookup)
>
>
>> -Peter
>>
>>
>>
>>  I would suggest you split your raster with something like GDAL
>> gdal_retile.py and then import your tiles into a single WKT Raster table
>> following the instruction provided in our tutorial. Each tile will be stored
>> in a column cell of type RASTER similar to the PostGIS GEOMETRY type.
>>
>>
>>
>> As I said previously you can then query the raster in SQL like this:
>>
>>
>>
>> SELECT ST_Value(rast, ST_Geomfromtext('Point(-78.1 58.1)', 4326))
>>
>> FROM srtm_tiled_100x100
>>
>> WHERE ST_Intersects(rast::geometry, ST_Geomfromtext('Point(-78.1 58.1)',
>> 4326)) AND whatever you want.
>>
>>
>>
>> Basically WKT Raster is the first true SQL interface with which is is
>> simple to do such things… It's proven, any-size, cloud-scalable, and open
>> source J Maybe not that prooven. But who is?
>>
>>
>>
>> There is also rasdaman but I don’t think you can use SQL. It would be nice
>> if you could compare both… I can’t find time for this. Jorge has started
>> comparing PostGIS WKT Raster with Oracle Georaster though.
>>
>>
>>
>> Pierre
>>
>>
>>
>>
>>
>> *From:* postgis-users-boun...@postgis.refractions.net [
>> mailto:postgis-users-boun...@postgis.refractions.net<postgis-users-boun...@postgis.refractions.net>]
>> *On Behalf Of *Sebastian E. Ovide
>> *Sent:* 20 juillet 2010 10:46
>> *To:* PostGIS Users Discussion
>> *Subject:* Re: [postgis-users] WKTRaster : gdal2wktraster.py cannot read
>> AIG/Arc/Info Binary Grid
>>
>>
>>
>> yes... with png worked... but it was a different png (a smaller one)...
>>
>> so I've converted the ESRI into a png and tried to import it... and it
>> didn't work neither...
>>
>> so this is the situation:
>> A have huge rusters (from 150kx150k).. In Oracle I would just load it (the
>> huge raster) in a single row of a GeoRaster table and then Oracle GeoRaster
>> would split it in small tiles and store one tile per line of another table
>> (Raster Data Table)... then I can run a query similar to this one: SELECT
>> getcellvalue(t.rastercolumn,x,y) from GeoRasterTable t where t.id=1; and
>> GeoRaster will query automatically the spatial indexes and the Raster Data
>> Table and it will find the right tile etc...
>>
>> I do not know how WKTRaster works.... If I cannot import a such big image,
>> of course I can split it in smaller georeferenced tiles... (how?)... but....
>> My main question is: after that, how will the table look like ? how can I do
>> the same query (where id=1 or where name="UK" etc...) ?
>>
>>  On Tue, Jul 20, 2010 at 2:31 PM, Pierre Racine <
>> pierre.rac...@sbf.ulaval.ca> wrote:
>>
>> Wait. You first said the png was working. Now it’s not? Did you try
>> gdal_translate with the ESRI grid? For sure I haven’t test yet with such big
>> rasters. Is this the result of a merge or all your original raster are all
>> this size? The point is that with WKT Raster you don’t have to merge your
>> raster first into a gigantic raster in order to get it store in a unique
>> table like with Oracle Spatial.
>>
>>
>>
>> Pierre
>>
>>
>>
>> *From:* postgis-users-boun...@postgis.refractions.net [mailto:
>> postgis-users-boun...@postgis.refractions.net] *On Behalf Of *Sebastian
>> E. Ovide
>> *Sent:* 20 juillet 2010 05:51
>> *To:* PostGIS Users Discussion
>> *Subject:* Re: [postgis-users] WKTRaster : gdal2wktraster.py cannot read
>> AIG/Arc/Info Binary Grid
>>
>>
>>
>> Hi Pierre,
>>
>> Does gdal2wktraster.py have any limitation on the maximum number of
>> columnsxrows ?
>>
>> in my case, my raster is  107759 x 168633...
>>
>> gdal works well:
>>
>> se...@seanspc:~/rasters$ gdal_translate -of PNG raster/ test.png
>> Input file size is 107759, 168633
>> 0...10...20...30...40...50...60...70...80...90...100 - done.
>>
>>
>> se...@seanspc:~/rasters$ python gdal2wktraster.py -r raster/ -t
>> sebastable -o ok.sql
>> gdal2wktraster.py:695: DeprecationWarning: 'H' format requires 0 <= number
>> <= 65535
>>   hexwkb += wkblify('H', xsize)
>> gdal2wktraster.py:696: DeprecationWarning: 'H' format requires 0 <= number
>> <= 65535
>>   hexwkb += wkblify('H', ysize)
>> gdal2wktraster.py:727: DeprecationWarning: integer argument expected, got
>> float
>>   hexwkb += wkblify(pt2fmt(pixtype), nodata)
>> Traceback (most recent call last):
>>   File "gdal2wktraster.py", line 1013, in <module>
>>     main()
>>   File "gdal2wktraster.py", line 976, in main
>>     wkblify_raster(opts, filename, i)
>>   File "gdal2wktraster.py", line 921, in wkblify_raster
>>     summary = wkblify_raster_level(options, ds, options.overview_level,
>> band_range, infile, i)
>>   File "gdal2wktraster.py", line 888, in wkblify_raster_level
>>     hexwkb += wkblify_band(options, band, level, xoff, yoff,
>> read_block_size, block_size, infile, b)
>>   File "gdal2wktraster.py", line 777, in wkblify_band
>>     target_block_size[0], target_block_size[1])
>>   File "/usr/lib/python2.6/dist-packages/osgeo/gdal.py", line 895, in
>> ReadAsArray
>>     buf_xsize, buf_ysize, buf_obj )
>>   File "/usr/lib/python2.6/dist-packages/osgeo/gdal_array.py", line 228,
>> in BandReadAsArray
>>     ar = numpy.empty([buf_ysize,buf_xsize], dtype = typecode)
>> MemoryError
>>
>>
>> se...@seanspc:~/rasters$ python gdal2wktraster.py -r test.png  -t
>> sebastable -o ok.sql
>> gdal2wktraster.py:695: DeprecationWarning: 'H' format requires 0 <= number
>> <= 65535
>>   hexwkb += wkblify('H', xsize)
>> gdal2wktraster.py:696: DeprecationWarning: 'H' format requires 0 <= number
>> <= 65535
>>   hexwkb += wkblify('H', ysize)
>> gdal2wktraster.py:727: DeprecationWarning: integer argument expected, got
>> float
>>   hexwkb += wkblify(pt2fmt(pixtype), nodata)
>> Traceback (most recent call last):
>>   File "gdal2wktraster.py", line 1013, in <module>
>>     main()
>>   File "gdal2wktraster.py", line 976, in main
>>     wkblify_raster(opts, filename, i)
>>   File "gdal2wktraster.py", line 921, in wkblify_raster
>>     summary = wkblify_raster_level(options, ds, options.overview_level,
>> band_range, infile, i)
>>   File "gdal2wktraster.py", line 888, in wkblify_raster_level
>>     hexwkb += wkblify_band(options, band, level, xoff, yoff,
>> read_block_size, block_size, infile, b)
>>   File "gdal2wktraster.py", line 777, in wkblify_band
>>     target_block_size[0], target_block_size[1])
>>   File "/usr/lib/python2.6/dist-packages/osgeo/gdal.py", line 895, in
>> ReadAsArray
>>     buf_xsize, buf_ysize, buf_obj )
>>   File "/usr/lib/python2.6/dist-packages/osgeo/gdal_array.py", line 228,
>> in BandReadAsArray
>>     ar = numpy.empty([buf_ysize,buf_xsize], dtype = typecode)
>> MemoryError
>>
>>
>>
>>  On Mon, Jul 19, 2010 at 5:56 PM, Pierre Racine <
>> pierre.rac...@sbf.ulaval.ca> wrote:
>>
>> Hi Sebastian,
>>
>>
>>
>> I can convert ESRI Grid file to .sql without problem using
>> gdal2wktraster.py and the same parameters as you. I can do both integer and
>> floating point rasters.
>>
>>
>>
>> Maybe this is a GDAL problem. Try to convert it using gdal_translate (to
>> tiff for example). This would be a better test than just gdalinfo.
>>
>>
>>
>> Could you provide us with a file sample?
>>
>>
>>
>> Pierre
>>
>>
>>
>> *From:* postgis-users-boun...@postgis.refractions.net [mailto:
>> postgis-users-boun...@postgis.refractions.net] *On Behalf Of *Sebastian
>> E. Ovide
>> *Sent:* 19 juillet 2010 12:28
>> *To:* PostGIS Users Discussion
>> *Subject:* [postgis-users] WKTRaster : gdal2wktraster.py cannot read
>> AIG/Arc/Info Binary Grid
>>
>>
>>
>> Hi All,
>>
>> trying to create a SQL with gdal2wktraster.py. It works on PNG but it
>> doesn't on AIG files...
>>
>> Note: As Gdal works fine.
>>
>> C:\Program Files\PostgreSQL\8.4\bin>gdalinfo c:\tmp\raster
>> Driver: AIG/Arc/Info Binary Grid
>> Files: c:\tmp\raster
>>        c:\tmp\raster\dblbnd.adf
>>        c:\tmp\raster\hdr.adf
>>        c:\tmp\raster\metadata.xml
>>        c:\tmp\raster\prj.adf
>>        c:\tmp\raster\sta.adf
>>        c:\tmp\raster\vat.adf
>>        c:\tmp\raster\w001000.adf
>>        c:\tmp\raster\w001000x.adf
>>        c:\tmp\raster\w001001.adf
>>        c:\tmp\raster\w001001x.adf
>>        c:\tmp\raster\z001001.adf
>>        c:\tmp\raster\z001001x.adf
>>        c:\tmp\raster\z001002.adf
>>        c:\tmp\raster\z001002x.adf
>>        c:\tmp\raster\z001003.adf
>>        c:\tmp\raster\z001003x.adf
>>        c:\tmp\raster\z001004.adf
>>        c:\tmp\raster\z001004x.adf
>>        c:\tmp\raster\z001005.adf
>>        c:\tmp\raster\z001005x.adf
>>        c:\tmp\raster\z001006.adf
>>        c:\tmp\raster\z001006x.adf
>>        c:\tmp\raster\z001007.adf
>>        c:\tmp\raster\z001007x.adf
>>        c:\tmp\raster\z001008.adf
>>        c:\tmp\raster\z001008x.adf
>>        c:\tmp\raster\z001009.adf
>>        c:\tmp\raster\z001009x.adf
>>        c:\tmp\raster\z001010.adf
>>        c:\tmp\raster\z001010x.adf
>>        c:\tmp\raster\z001011.adf
>>        c:\tmp\raster\z001011x.adf
>>        c:\tmp\raster\z001012.adf
>>        c:\tmp\raster\z001012x.adf
>>        c:\tmp\raster\z001013.adf
>>        c:\tmp\raster\z001013x.adf
>>        c:\tmp\raster\z001014.adf
>>        c:\tmp\raster\z001014x.adf
>>        c:\tmp\raster\z001015.adf
>>        c:\tmp\raster\z001015x.adf
>> Size is 107759, 168633
>> Coordinate System is:
>> PROJCS["unnamed",
>>     GEOGCS["Unknown datum based upon the Airy 1830 ellipsoid",
>>         DATUM["Not_specified_based_on_Airy_1830_ellipsoid",
>>             SPHEROID["Airy 1830",6377563.396,299.3249646,
>>                 AUTHORITY["EPSG","7001"]],
>>             AUTHORITY["EPSG","6001"]],
>>         PRIMEM["Greenwich",0,
>>             AUTHORITY["EPSG","8901"]],
>>         UNIT["degree",0.01745329251994328,
>>             AUTHORITY["EPSG","9122"]],
>>         AUTHORITY["EPSG","4001"]],
>>     PROJECTION["Transverse_Mercator"],
>>     PARAMETER["latitude_of_origin",49],
>>     PARAMETER["central_meridian",-2],
>>     PARAMETER["scale_factor",0.9996012717],
>>     PARAMETER["false_easting",400000],
>>     PARAMETER["false_northing",-100000],
>>     UNIT["METERS",1]]
>> Origin = (128110.000000000000000,813270.000000000000000)
>> Pixel Size = (5.000000000000000,-5.000000000000000)
>> Corner Coordinates:
>> Upper Left  (  128110.000,  813270.000) (  6d29'37.32"W, 57d 7'47.53"N)
>> Lower Left  (  128110.000,  -29895.000) (  5d45'40.00"W, 49d34'10.24"N)
>> Upper Right (  666905.000,  813270.000) (  2d24'41.72"E, 57d 7'58.04"N)
>> Lower Right (  666905.000,  -29895.000) (  1d41'32.29"E, 49d34'18.23"N)
>> Center      (  397507.500,  391687.500) (  2d 2'15.04"W, 53d25'18.19"N)
>> Band 1 Block=256x4 Type=Byte, ColorInterp=Undefined
>>   Min=1.000 Max=4.000
>>   NoData Value=255
>>
>>
>> C:\Program Files\PostgreSQL\8.4\bin>python gdal2wktraster.py -r
>> c:\tmp\raster -t sebastable -o c:\tmp\sebas.sql
>> gdal2wktraster.py:644: DeprecationWarning: 'H' format requires 0 <= number
>> <= 65535
>>   hexstr = binascii.hexlify(struct.pack(fmt_little, data)).upper()
>> gdal2wktraster.py:644: DeprecationWarning: integer argument expected, got
>> float
>>   hexstr = binascii.hexlify(struct.pack(fmt_little, data)).upper()
>> ERROR 2: Multiplication overflow : 107759 * 168633 * 1
>> Traceback (most recent call last):
>>   File "gdal2wktraster.py", line 1013, in <module>
>>     main()
>>   File "gdal2wktraster.py", line 976, in main
>>     wkblify_raster(opts, filename, i)
>>   File "gdal2wktraster.py", line 921, in wkblify_raster
>>     summary = wkblify_raster_level(options, ds, options.overview_level,
>> band_range, infile, i)
>>   File "gdal2wktraster.py", line 888, in wkblify_raster_level
>>     hexwkb += wkblify_band(options, band, level, xoff, yoff,
>> read_block_size, block_size, infile, b)
>>   File "gdal2wktraster.py", line 777, in wkblify_band
>>     target_block_size[0], target_block_size[1])
>>   File "C:\OSGeo4W\apps\gdal-16\pymod\osgeo\gdal.py", line 835, in
>> ReadAsArray
>>     buf_xsize, buf_ysize, buf_obj )
>>   File "C:\OSGeo4W\apps\gdal-16\pymod\osgeo\gdal_array.py", line 140, in
>> BandReadAsArray
>>     ar = numpy.reshape(ar, [buf_ysize,buf_xsize])
>>   File
>> "C:\OSGeo4W\apps\Python25\lib\site-packages\numpy\core\fromnumeric.py", line
>> 116, in reshape
>>     return reshape(newshape, order=order)
>> ValueError: total size of new array must be unchanged
>>
>> Any ideas ?
>> --
>> Sebastian E. Ovide
>>
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users@postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>
>>
>>
>> --
>> Sebastian E. Ovide
>>
>> skype: sebastian.ovide
>>
>> +353 (0) 87 6340149
>>
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users@postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>
>>
>>
>> --
>> Sebastian E. Ovide
>>
>>
>>
>>
>>   --
>> Dr. Peter Baumann
>>  - Professor of Computer Science, Jacobs University Bremen
>>    www.faculty.jacobs-university.de/pbaumann
>>    mail: p.baum...@jacobs-university.de
>>    tel: +49-421-200-3178, fax: +49-421-200-493178
>>  - Executive Director, rasdaman GmbH Bremen (HRB 147737)
>>    www.rasdaman.com, mail: baum...@rasdaman.com
>>    tel: 0800-rasdaman, fax: 0800-rasdafax, mobile: +49-173-5837882
>> "Si forte in alienas manus oberraverit hec peregrina epistola incertis 
>> ventis dimissa, sed Deo commendata, precamur ut ei reddatur cui soli 
>> destinata, nec preripiat quisquam non sibi parata." (mail disclaimer, AD 
>> 10xx)
>>
>>
>>
>>
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users@postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>
>
>
> --
> Sebastian E. Ovide
>
>
>
>
> --
> Dr. Peter Baumann
>  - Professor of Computer Science, Jacobs University Bremen
>    www.faculty.jacobs-university.de/pbaumann
>    mail: p.baum...@jacobs-university.de
>    tel: +49-421-200-3178, fax: +49-421-200-493178
>  - Executive Director, rasdaman GmbH Bremen (HRB 147737)
>    www.rasdaman.com, mail: baum...@rasdaman.com
>    tel: 0800-rasdaman, fax: 0800-rasdafax, mobile: +49-173-5837882
> "Si forte in alienas manus oberraverit hec peregrina epistola incertis ventis 
> dimissa, sed Deo commendata, precamur ut ei reddatur cui soli destinata, nec 
> preripiat quisquam non sibi parata." (mail disclaimer, AD 10xx)
>
>
>
>
>
> --
> Dr. Peter Baumann
>  - Professor of Computer Science, Jacobs University Bremen
>    www.faculty.jacobs-university.de/pbaumann
>    mail: p.baum...@jacobs-university.de
>    tel: +49-421-200-3178, fax: +49-421-200-493178
>  - Executive Director, rasdaman GmbH Bremen (HRB 147737)
>    www.rasdaman.com, mail: baum...@rasdaman.com
>    tel: 0800-rasdaman, fax: 0800-rasdafax, mobile: +49-173-5837882
> "Si forte in alienas manus oberraverit hec peregrina epistola incertis ventis 
> dimissa, sed Deo commendata, precamur ut ei reddatur cui soli destinata, nec 
> preripiat quisquam non sibi parata." (mail disclaimer, AD 10xx)
>
>
>
>


-- 
Sebastian E. Ovide
_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to