Vairāk

Funkcija PostGIS ST_AsTIFF palielina atmiņas izņēmumu?


Mums ir satelīta attēls, kas ielādēts PostGIS. No šī attēla esam aprēķinājuši atstarošanas rastru un saglabājuši rezultātus kā 32BF pikseļi. Atstarošanas rastrī ir 54 1000x1000 flīzes.

Es vēlos izveidot šī atstarošanas rastra GeoTIFF. Atsevišķas flīzes darbojas labi. Bet, izmantojot ST_Union atstarošanas rastra slejā, tiek izpildīts izņēmums, izpildot tālāk norādīto vaicājumu no Python:

SELECT ST_AsTIFF (ST_Union (refl_rast), 'GTiff') gtiff no sat_rast_calc InternalError: nederīgs atmiņas piešķiršanas pieprasījuma lielums 1344128795

Es zinu, ka es varu eksportēt flīzes atsevišķi un pēc tam apvienot tās ar gdal_merge.py. Es tomēr labprātāk eksportētu šo GTiff vienā solī.

Vai kāds no šiem varētu palīdzēt?

  1. Izmantojot cita veida pikseļus
  2. Iesniegšana citā ST_AsGTIFF opcijā
  3. PostGRES atmiņas parametra palielināšana
  4. Linux kodola parametra palielināšana
  5. Darot kaut ko citu

Atmiņas ierobežojums vienai PostgreSQL rindai ir 1 GB. Mēģiniet izmantot mazāk atmiņas izsalkušu pikseļu veidu. Jūs varat arī mēģināt nodot kompresijas parametru ST_AsTiff (), bet es domāju, ka iekšējais darbs tiek veikts bez saspiešanas. Pamēģiniet arī saspiest flīzes PIRMS ST_Union () tās gadījumā, ja ... Rastri PostGIS ir izveidoti tā, lai tie labi darbotos kā mazs rastra gabals. Nevis manipulēt ar lieliem krāpniekiem kopumā.