Select to view content in your preferred language

Postgress/PostGIS Rasters in ArcGIS not working

4442
9
Jump to solution
02-18-2014 01:20 AM
josesanchez1
Regular Contributor
Hi,

I need to use ArcMap 10.1 and read rasters stored in PostGRESS/PostGIS, without having to create views or multy-polygons in the database.

I have tried two ways:

- Setting a Database connection in ArcCatalog directly to the Postgress/PostGIS database. I can display vector features, fine, but only see the attribute table of the rasters, so not displaying the rasters as a whole. I guess this has not been implemented so far by ESRI, has it?.

- By using the Interoperability extension and its postGIS file type, I can see my geometries within my database, anything new, then I am able to add those raster tables into my ArcCatalog tree. Interesting, at least this time, the icon of the element instead of being a table icon seems to be a point feature icon, so something different is going on. But when I try to display these point geometries (a kind of cells?), it says "Error reading Interoperability Data. The operation failed because the database table does not have a numeric number".

If I were able to add this numeric number into my raster table at the database - still I don't know how to do it- would I be able to finally visualize the raster?, or would I see just only the table again?. Would version 10.2 of ArcGIS improve this a little?. Is there any other way round to solve this within ArcGIS?

In the other hand, am I having these issues because I have not done something at the database level which I was supposed to do with my raster files? Someone has succeeded at adding postgis rasters into ArcGIS?

Anyone has used postgress rasters in ArcGIS succesfully?

Thanks in advance.
0 Kudos
1 Solution

Accepted Solutions
VinceAngelo
Esri Esteemed Contributor
Raster support in databases is very nearly only for backward compatibility at
this point.  There isn't much point in new development to support an archaic
use pattern -- Files in a filesystem are much more scalable, adaptable and
open than trapping rasters in databases, especially since the most frequent
distribution mechanism is through pyramided tile caches (why store the base
images twice, or even three times?)  It's also kinder on the databases to
not overwhelm them with terabytes of infrequently changing data, making
a nightmare of backup management.

- V

View solution in original post

0 Kudos
9 Replies
josesanchez1
Regular Contributor
After some research on the internet, I have concluded that the following capabilities are not implemented yet in ArcGIS. This is of course my personal opinion, I could be wrong.

- Raster tables from SQL Server
- Raster tables from PostGIS/Postgres
- Raster tables from Spatialite

ONLY, raster tables from ORACLE (georaster format) are readable directly in ArcGIS as images.

So, the answer to my previous post should be: No, you cannot read raster images stored in PostGIS using ArcGIS, the only thing you can do is just visualizing the raster table as an attribute table, and see the columns.

The excellent piece of Software called 'Interoperability extension' could have the missing functionality I was looking for, but again, Safe Software says that currently it does not support raster images stored in postgis/postgres.

So, the obvious question now is whether ESRI is planning to do so in the near future, because Safe Software is not.

Somebody may argue that you can possibly serve those images as MAP services and consume them through ArcGIS. Yes, it is true, but I am interested in the configuration of database + client, and not database + server + client.

Finally, perhaps if you are strong enough to create a python script - I am not - as a tool that could read the table and convert it into a real raster image, you could solve the problem, but then you lose track of the changes in the database, unless you execute your script every time you access the database.

I encourage ESRI people to do so, as I think raster images are increasingly on demand, and for instance QGIS can read postgis raster tables and display them. We could say the same to Postgis/posgress people in order to cooperate with ESRI or develop that functionality for ArcGIS users.

I seems to me rare that if you are thinking in storing raster images in a spatial database and consume those images using ArcGIS, ORACLE is the only available option.

I hope this helps.

Jose.
0 Kudos
MarcoBoeringa
MVP Regular Contributor
I seems to me rare that if you are thinking in storing raster images in a spatial database and consume those images using ArcGIS, ORACLE is the only available option.


Jose,

Have a look at these Help pages if you haven't so:

How raster data is stored and managed


Raster datasets and raster catalogs in a geodatabase in PostgreSQL


I think you're right about the PostGIS Raster format currently not being supported (but QGIS seems to be the only GIS now with "out-of-the-box" support according to this PostGIS FAQ, so ESRI is not the only party not yet having implemented support)

But the quote above is only true as regards reading the native raster data format of the RDBMS itself. ESRI does support rasters in databases, but in their own format (albeit with possibility to either use a native RDBMS field type for raster storage, or use the more generic ST_Raster but depend on extra configuration for ST_Raster support).

There are pros and cons to this approach: con is that you can not read data already loaded in an existing database using the RDMS's tools. Pro is that ESRI can more easily deliver a consistent user experience across different databases / RDBMSs, without relying to much on individual database features, and can probably optimize the raster data format for usage in ArcGIS.
0 Kudos
VinceAngelo
Esri Esteemed Contributor
Raster support in databases is very nearly only for backward compatibility at
this point.  There isn't much point in new development to support an archaic
use pattern -- Files in a filesystem are much more scalable, adaptable and
open than trapping rasters in databases, especially since the most frequent
distribution mechanism is through pyramided tile caches (why store the base
images twice, or even three times?)  It's also kinder on the databases to
not overwhelm them with terabytes of infrequently changing data, making
a nightmare of backup management.

- V
0 Kudos
MarcoBoeringa
MVP Regular Contributor
Raster support in databases is very nearly only for backward compatibility at
this point.  There isn't much point in new development to support an archaic
use pattern -- Files in a filesystem are much more scalable, adaptable and
open than trapping rasters in databases - V


X2, this played in the back of my mind when writing the above post, and I should probably have added this, but the OP asked about a situation where the data is already added to the database.

Now we're on it, I guess it is good to mention Mosaic Datasets (with the preffered option to use referenced datasets not residing in the RDBMS but on the file system), as the primary new alternative option for using and managing raster datasets in ArcGIS.
0 Kudos
josesanchez1
Regular Contributor
OK, all your messages lead me to ask myself the following question:

vangelo: If ESRI prefers raster images as files rather than database tables, could it possibly mean that remote services - WCS - would not be largely developed in the near future either?

Jose.
0 Kudos
VinceAngelo
Esri Esteemed Contributor
I don't see any linkage between the best way to access data on disk and abandonment of web-based access protocols.  Can you explain why you   feel they are related? -V
0 Kudos
josesanchez1
Regular Contributor
Hi Vince Angelo,

I will try to explain it better.

All of this started because displaying raster images stored in spatial databases (PostGIS) is not possible in ArcGIS -ONLY ORACLE and its georaster are implemented-, unless you put a spatial server in between (ArcGIS SERVER, MAPSERVER, Geoserver..).

Why was I thinking in a spatial database such as PostGIS as a source for serving images?

Because I thought that direct access to databases was far more developed for raster images than server images are. Open Source WCS (Web Coverage Service) does not work as good as a raster file yet in 2014, only Image Services (ArcGIS Server) are nearly there.

So, I was thinking that if ESRI does not take into account pretty seriously working with database raster images directly without a server in between, I thought that WCS might not be in the agenda of ESRI either, because these two ways could give the user total usage of raster images without using necessarily ArcGIS sERVER.

I just wanted to make sure that I was not dealing with technical issues at all but mainly with strategical ones.

What I needed was provide remote access to raster images without ArcGIS Server. That is why my post was about using PostGIS raster images in ArcGIS.

Thanks,

Jose.
0 Kudos
VinceAngelo
Esri Esteemed Contributor
Esri already has a product for making web services available -- ArcGIS Server.  Other vendors
are certainly free to make their own, but there's no reason for Esri to make a second product.

Esri is a large company, with a huge development staff.  They really do "research", but that
doesn't mean it all pans out, and it doesn't mean the new things will be leaked before they're
ready.

I'll repeat: Over the past twelve years, databases have been proven to be very inefficient
ways to manage raster data -- Just because PostgreSQL rasters are new doesn't mean this
hasn't been conclusively proven.

You are certainly welcome to implement your own web service out of PostgreSQL directly
without ArcGIS Server, but this isn't likely to be an Esri endeavor, and that has no bearing
whatsoever on Esri's commitment to Server or Client technology.

- V
0 Kudos
josesanchez1
Regular Contributor
Thanks Vince Angelo,

Jose.
0 Kudos