392def make_sql_addrastercolumn(options, pixeltypes, nodata, pixelsize, blocksize, extent):
393 assert len(pixeltypes) > 0, "No pixel types given"
394 ts = make_sql_schema_table_names(options.table)
395 pt = make_sql_value_array(pixeltypes)
396
397 nd = 'null'
398 if nodata is not None and len(nodata) > 0:
399 nd = make_sql_value_array(nodata)
400
401 odb = 'false'
402 if options.register:
403 odb = 'true'
404
405 rb = 'false'
406 extgeom = 'null'
407 bs = ( 'null', 'null' )
408
409 if options.block_size is not None:
410 assert pixelsize is not None, "Pixel size is none, but regular blocking requested"
411 assert blocksize is not None, "Block size is none, but regular blocking requested"
412 assert extent is not None, "Extent is none, but regular blocking requested"
413 assert len(pixelsize) == 2, "Invalid pixel size, two values expected"
414 assert len(blocksize) == 2, "Invalid block size, two values expected"
415 assert len(extent) == 4, "Invalid extent, four coordinates expected"
416 assert len(extent[0]) == len(extent[3]) == 2, "Invalid extent, pair of X and Y pair expected"
417 rb = 'true'
418 bs = ( blocksize[0], blocksize[1] )
419 extgeom = "ST_Envelope(ST_SetSRID('POLYGON((%.15f %.15f,%.15f %.15f,%.15f %.15f,%.15f %.15f,%.15f %.15f))'::geometry, %d))" % \
420 (extent[0][0], extent[0][1], extent[1][0], extent[1][1],
421 extent[2][0], extent[2][1], extent[3][0], extent[3][1],
422 extent[0][0], extent[0][1], options.srid)
423
424 sql = "SELECT AddRasterColumn('%s','%s','%s',%d, %s, %s, %s, %s, %.15f, %.15f, %s, %s, %s);\n" % \
425 (ts[0], ts[1], options.column, options.srid, pt, odb, rb, nd,
426 pixelsize[0], pixelsize[1], bs[0], bs[1], extgeom)
427
428 logit("SQL: %s" % sql)
429 return sql
430