8

We have a GIS staff of 7, and another group of about 14 who "use GIS" from time to time. We really, really want multi-user editing. Mostly of a large point file, and we're almost never in the same location, so editing the same point is not a concern.

I'd prefer everyone on ArcGIS, using ArcSDE, but we don't have the budget, or using QGIS and ArcGIS on PostgreSQL/PostGIS, but ArcGIS for Desktop cannot edit PostGIS without ArcSDE.

Currently, I've got the GIS staff on ArcGIS Advanced, and the others on QGIS 2.2. It's working well, multiple QGIS users are able to edit at the same time + one additional Arc user, but I'm always concerned about something popping up that I haven't considered. I'm backing up our data 4x/day.

Hoping there may be others in a similar environment who could help me learn from their experience, avoid making mistakes or losing data.

mike
  • 981
  • 11
  • 17

2 Answers2

4

Since you would "prefer everyone on ArcGIS, using ArcSDE, but ... don't have the budget" you may be interested in "GISquirrel" http://www.gisquirrel.com which gives multi-user editing of PostGIS tables in ArcMap (at Basic licence level). This may give you what you want for all users, but if you still need QGIS in the mix then you are quite right to consider the effects of editing with mixed clients. The main and obvious advice is that you should always be prepared to recover from adverse incidents in your database, such as users accidentally deleting records, etc, and the more mission-critical your data then more fine-grained you want your recover capabilities. You might also want regular reporting of the vital statistics of your tables - number of rows, number of new/edit/deleted feature, etc to help identify any issues.
GISquirrel works differently from both ArcGIS+SDE and QGIS, though the overall effect is similar to QGIS in that edits are visible to all users immediately on saving.
GISquirrel checks out selected features for editing, and (optionally) can write values into the main table that “lock” the features and show who is editing them. The lock is only seen as a feature lock by GISquirrel though – other applications would just see a value in a field, though they could be customised to respect it.
On saving edits, they are written back to the main table. Only the changed/new/deleted features are altered in the main table.
GISquirrel also (optionally) manages feature-level metadata, showing who last edited each feature and when, which you wouldn’t get with direct QGIS editing (unless you used triggers and individual database logins).
I cannot foresee any problems with editing a PostGIS table in both (GISquirrel+ArcMap) and QGIS, so long as (as you said) you are not worried about potential editing clashes (where the later save would "win"). But we would recommend doing your own testing to verify this in your environment if you do intend to edit with mixed clients.

CrispinF
  • 41
  • 1
  • Hey @CrispinF, thanks for your reply. My current solution has been to run PostgreSQL 9.1 with PostGIS 2.1 off a bob box in the office. All edits are being made in QGIS 2.2, the GIS Staff uses ArcGIS Advanced for map production and geoprocessing. I've got some SQL/SDE admin experience, but managing via pgAdminIII has been pretty easy.

    So far (fingers crossed), it's been excellent. Multi-user editing is seamless, changes visible as soon as they are saved. DB is pretty small (16000 records of just points) so good performance as well.

    Thanks

    – mike Oct 13 '14 at 15:58
1

I've done multiuser editing with QGIS and Esri (note: QGIS is no slower than ArcGis at capture/update), however we have and use SDE; I have found the problem is not QGIS but ArcGis...

ArcGis on SDE for PostgreSQL using PostGIS geometry types allow for the data to be 'shared' around between users which works great in a read-only sense but there are significant differences between the way that ArcGis and QGIS write to PostGIS databases...

QGIS writes directly to the database so as soon as the user saves edits the edits are visible to other users in QGIS or ArcGis as the change is made to the base table.

ArcGis uses versioning to edit PostGIS data where the edits are made against a version and stored in a delta table, when the user saves the edits are visible to other ArcGis users - as ArcGis is aware of the delta tables but QGIS users are not aware of the delta tables so the edits made in ArcGis are only visible to QGIS users after the database has been compressed back to the default state.

I would recommend that you ONLY EDIT THE POSTGIS DATA WITH QGIS and use ArcGis just to view the data; it's also far more convenient to build the database in catalog and export using toolbox tools. Don't panic, you still can use your geoprocessing tools in ArcGis, build topology/network make cartographic maps etc.. all the fancy stuff - just don't version the database and edit in ArcGis.

P.S. I back up daily on a scheduled task using pg_dump which can be restored using pg_restore - try your backup/restore process on a test dataset as not every backup method will produce a viable PostGIS database when restored (the tables will be there but the triggers may not work) and that's something you don't want to find out the hard way.

Michael Stimson
  • 25,566
  • 2
  • 35
  • 74
  • 1
    I could be wrong but I thought versioning was optional with ArcSDE for PostgreSQL. – PolyGeo Sep 25 '14 at 22:43
  • Versioning is optional but I've not been able to edit using the editor toolbar without registering the data as versioned... I'd be happy to be corrected on this one as I've had no official instruction on SDE/PostgreSQL, I was just handed the software and told to 'make it work'. Disconnected editing relies on versioning and there should be a Default version to create the disconnected version from. – Michael Stimson Sep 25 '14 at 22:50
  • 2
    I've not done it either but there is some help here that suggests to me that you just need to change an ArcMap setting to enable nonversioned editing of ArcSDE data. – PolyGeo Sep 25 '14 at 22:56
  • I've seen that one before. UnVersioned editing is limited (or recommended to be limited to) a single editor but then operates in a similar fashion to QGIS editing the tables directly. It is potentially possible to multi-user edit without verioning but Esri advises against it (if it breaks Esri support probably wont help) and a risk of corrupting your database. – Michael Stimson Sep 25 '14 at 23:06
  • 1
    Non-versioned editing with ArcGIS is probably exactly the same as with QGIS as far as the database and its consistency are concerned. I would suggest revising this answer to include the information @PolyGeo provided, as if you're going to be doing non-versioned editing at all, you might as well be able to do it with whichever client application you prefer. – blah238 Sep 25 '14 at 23:20
  • @blah238, I cannot in good conscience include that information as I am not sure that it wont lock the database, overwrite simultaneous edits or corrupt tables. I have not tested that functionality so can't recommend it... just because it's probably the same as QGIS doesn't make it known to be safe - read that page, it contains warnings about locks, isolation levels and database constraints and triggers. I can only comment on what I have personally experienced and have proven to be safe. I will NOT encourage a user to risk their database on PROBABLY. – Michael Stimson Sep 25 '14 at 23:35
  • 2
    @MichaelMiles-Stimson I understand your concerns, but I would just be clear that the same warnings apply to QGIS. If you did DB traces on edits with both clients my guess would be that the queries/transactions as seen by the DBMS would be essentially identical. I mainly just disagree with the recommendation to only use QGIS here as if it is somehow safer to use than ArcGIS (in non-versioned editing mode). The question is about using ArcGIS and QGIS together and I feel that the recommendation to not use ArcGIS at all warrants further examination. – blah238 Sep 25 '14 at 23:53
  • Take it as you will. I've been there, done that, and found it's safer to use clients other than ArcGis to avoid duplicate edits which is in this case QGIS; MicroImages TNTmips plays nicely as well. Use ArcMap for what ArcMap is good for (Geoprocessing, high-quality cartography...) and if everyone uses the same client (for no extra cost) you avoid a potential problem which is the point I'm trying to make. We had an instance where a user refused to use QGIS and insisted on using ArcGis and that created a mess that took me weeks to fix due to his edits not being viewable by the QGIS clients. – Michael Stimson Sep 26 '14 at 00:02
  • Thanks for your answers. For my situation, we do not have ArcSDE/ArcGIS for Server so true versioning is not an option using ArcGIS.

    So far, I've found that multiple QGIS users can edit a shp simultaneously, with the caveat that if both are editing the same feature, the last one to save keeps the edits. Both QGIS/ArcGIS users are able to see QGIS edits as soon as they are saved and the map is refreshed.

    So my main concern lies with adding/deleting records. If a QGIS user is adding a few points, and an ArcGIS user deletes 6 current records and saves, what happens when the QGIS user saves?

    – mike Sep 26 '14 at 07:23
  • 1
    @mike That should not cause any problems because they are separate transactions and because one is an add and the other is a delete there is no chance for conflict. – blah238 Sep 26 '14 at 18:25
  • 2
    I agree with @blah238, they're separate rows - the new features get new objectids and the deleted features are from existing, you would only get a conflict if one user edits and the other deletes/edits the same row. Make your saves frequent and/or implement a plan to avoid this situation. In my case users were organized into areas to edit which helped but in the case of polygons and linear features occasionally there was a conflict... I also wrote an auto-save tool which prompted the user to save after 5 minutes, the more outstanding edits the greater the chance of conflict. – Michael Stimson Sep 28 '14 at 22:59