[postgis-users] No Space Left on Device Error
Michael Treglia
mtreglia at gmail.com
Wed May 4 06:39:45 PDT 2016
I think I'm making progress - and am about to try the below on the full
dataset, but adding WHERE ST_INTERSECTS seems to help the issue you point
to, correct Nicolas? It takes about 1/4 the time on my small sample dataset
vs. without the WHERE ST_INTERSECTS
SELECT bin,
(ST_SummaryStats(ST_Union(ST_Clip(rast,st_buffer(bldgs.geom_2263,
-9.84252))),true)).count as countgrn,
(ST_SummaryStats(ST_Union(ST_Clip(rast,st_buffer(bldgs.geom_2263,
-9.84252))),false)).count as countttl,
(ST_BUFFER(bldgs.geom_2263, -9.84252)) as geom
FROM staging.gee_ndvi_2013, staging.bldgs
WHERE ST_INTERSECTS(bldgs.geom_2263,gee_ndvi_2013.rast)
GROUP BY bin, geom_2263
I realize that in both situations, I'm getting the message below though,
which I gather is related to this issue, so I might need to so something
similar for ST_Clip specifically?
NOTICE: The input raster and input geometry do not intersect. Returning
empty raster
CONTEXT: PL/pgSQL function st_clip(raster,integer[],geometry,double
precision[],boolean) line 8 at RETURN
On Wed, May 4, 2016 at 9:13 AM, Michael Treglia <mtreglia at gmail.com> wrote:
> Okay, this makes sense - the tables have 1,082,210 and 245,508 rows for
> the bldgs and gee_ndvi_2013_merged, respectively. Can you suggest how to
> add the join condition? Or point to an example?
>
> Thanks for this insight!
> mike
>
> On Wed, May 4, 2016 at 9:07 AM, Nicolas Ribot <nicolas.ribot at gmail.com>
> wrote:
>
>> Hi,
>>
>> There is no join condition between your bldgs and gee_ndvi_2013_merged
>> (how many rows in this table ?) tables so your query is doing a cartesian
>> product: all bldgs rows x all gee_ndvi_2013_merged rows.
>>
>>
>>
>> On 4 May 2016 at 12:35, Michael Treglia <mtreglia at gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> I'm new to the list and pretty new to PostGIS, and would greatly
>>> appreciate any suggestions for troubleshooting an error I get when running
>>> a query on a large set of data. It seems like PostGIS is the most efficient
>>> way to accomplish what I'm going for, so I'm excited to get this working as
>>> a I add this to my toolkit.
>>>
>>> I'm running the query below on a vector layer of ~1 million polygons
>>> (bldgs) and a raster of ~2 billion pixels (gee_ndvi_2013_merged). This
>>> works on a small sample area and does exactly what I want (having
>>> previously clipped both the raster and vector to a small area), but when I
>>> run it on the full dataset, I get this error after ~4 hours:
>>> ERROR: could not write block 212381621 of temporary file: No space left
>>> on device
>>> SQL state: 53100
>>>
>>> My machine has plenty of available disk space, and I set the
>>> temp_file_limit in the postgresql.conf file to 500gb (and I have 32GB of
>>> ram if that's informative at all). I'm running the db from PostgreSQL 9.5
>>> and postgis 2.2.2 on Windows 7 x64 (and get the error when running both on
>>> that setup, and from an Ubuntu virtualbox as a client)
>>>
>>> Here's the query:
>>> --SQL
>>> SELECT bin,
>>> geom,
>>> countgrn,
>>> countttl,
>>> (countgrn::float / countttl::float)*100 as propgrn
>>> into resultsvectorlayers.try1_may3
>>> FROM (
>>> SELECT bin,
>>> (ST_SummaryStats(ST_Union(ST_Clip(rast,st_buffer(bldgs.geom_2263,
>>> -9.84252))),true)).count as countgrn,
>>> (ST_SummaryStats(ST_Union(ST_Clip(rast,st_buffer(bldgs.geom_2263,
>>> -9.84252))),false)).count as countttl,
>>> (ST_BUFFER(bldgs.geom_2263, -9.84252)) as geom
>>> FROM staging.gee_ndvi_2013_merged, staging.bldgs
>>> GROUP BY bin, geom_2263) AS foo;
>>>
>>> Any suggestions on how to troubleshoot or resolve this? Or if it seems
>>> like there's a better way I should execute this operation, I'm open to that
>>> too
>>>
>>>
>>> Thanks in advance for any advice!
>>>
>>> Best regards,
>>> Mike Treglia
>>>
>>> _______________________________________________
>>> postgis-users mailing list
>>> postgis-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/postgis-users
>>>
>>
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/postgis-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20160504/8240bfd9/attachment.html>
More information about the postgis-users
mailing list