Hot answers tagged

49

Ugh. The answer is really a complicated one that requires a lot of ArcSDE background, so I will try to be as brief as possible. Note I am going to refer to some diagrams from the super awesome versioning white paper that you can find in the ESRI site. If you are dealing with versioning, I extremely encourage you to read it throughly. Then, you need to ...


38

I think the stock/obvious answer would be to use a spatial database (PostGIS, Oracle, SDE, MSSQL Spatial, etc) in conjunction with a metadata server such as esri's GeoPortal or the open source GeoNetwork application, and overall I think this is generally the best solution. However, you'll likely always have a need for project-based snapshots / branches / ...


17

Metadata is by far the most important issue here. If metadata answers whom, when, why, where it's an acceptable metadata record. Having work experience in large companies with just a few GIS users (around 30) we had major issues to control data, specially versions and permissions. One side of this can be solved with extensive documenting of data (metadata) ...


15

We are currently working on a complete redesign of our geodatastores. I have to say that their evolution took more than 20 years till now. We identified the following key features in geospatial data management: simultaneous editing permissions to read or write portions of data hot update while running services that rely on data (Transactions and ACID ...


11

EDIT: This looks like the best option from NASA in 2010. archiving is now availble in 10.0 Also track user changes is coming :) oops. You might also look for "the differ" script. It is a bit old but might give some direction. and old editor tracking


10

If you call the method arcpy.Describe() on your feature class - e.g. arcpy.Describe("path/to/my/feature/class"), you will get a Dataset properties object. You can then use the isVersioned property of this object to get a boolean, whether or not your dataset is versioned. Code snippet: import arcpy datasetVersioned = ...


10

There is a function on arcpy called ListVersions. Here's online help for it. >>> print (arcpy.ListVersions('bigiron.sde')) [u'BILLY.VersionOne', u'JOE.2B8E86', u'S.DEFAULT'] >>>


8

We have used a file system organized hierarchically by: - geographic extent (country or continent) - data provider, licensor - domain/dataset - date/version After that we have a policy to separate the source data (in the same format that was on whatever CD/DVD that we got from the provider) from any derived datasets that we produced within our company. The ...


8

Edits to the DEFAULT version are stored in the delta tables unless you register the version with the option to move edits to base. You won't see edits to DEFAULT version when connecting with a non-SDE aware connection. You will only see the original table. Try registering your version with the option to move edits to base, make an edit to default and then ...


7

Every mainstream version control software, be it central central version control like SVN or distributed solutions like Git, Mercurial, Bazaar etc. allow storage of binary files. They are all quite effective both performance-wise and also in terms of occupied space. Inspecting differences between revisions/versions of a file is of course different story. ...


7

There is tool called Geodatabase Toolset (GDBT), which is a plugin to ArcCatalog. It visualizes the state linage and versions: Download GDBT here


7

This is exactly what Historical Versions (aka Archiving) were created for. Go ahead and Enable Archiving in ArcCatalog. Create a Historical Marker for the initial source version and another one for the end. Then you can open the table in a version created from the first marker, another one for a version in the target marker. A difference cursor will spit out ...


5

ModelBuilder is old, clunky, and is not getting any significant updates with ArcGIS Pro, if this tweet is any indication. I have never been a big fan of it (though begrudgingly still use it when I have to), so you might consider this answer as a sidestepping of the question and a recommendation to look at alternatives. FME is arguably the most obvious ...


5

Currently I have the workflow of ArcCatalog: opening toolbox > selecting model > editing > file > export > to python, switch to SCM tool > refresh changes > commit changes (enter log comment). It's cumbersome so I don't do it so much, and thereby lose many of the benefits of versioning.


5

I've dreamed of someone implementing non-destructive editing for GIS data. It's compute intensive but shouldn't be difficult implement in an RDBMS. Start with a snapshot of the data. Any changes are saved as edits, the original data remains unchanged. In your example, the buildings come in initially from the public sector data. When a user makes an edit, ...


5

The delta tables and state tree have a direct performance impact on your queries. First, you need to understand versioning; I did a short explanation of the relationship of the state tree and version labels in a different answer. I think it would help you to go over it. After reading that answer, you can then realize how a long state id branch (from root ...


5

I've wrote similar python code what your trying to do. Try the following: Check current version using Describe/Workspace properties Create ArcSDE Connection File to connect to version you want to replicate Replicate version using Create Replica Hope that helps.


5

Right-click on the Feature Class in question using ArcCatalog or Catalog window in ArcMap. View the Feature Class Properties. Under the General tab there is a Versioning section which will contain your answer. Example when option to move to base is checked:


5

The answer is yes that the number of rows in the sde_state_lineages table directly impacts performance of the geodatabase. 200k rows is not considered "alot" but that is relative to your available resources and assuming there are no versioning issues that would require a diagnose/repair. Continue to compress often. From your naming conventions it looks like ...


5

A lineage length of 289 indicates 289 states participate in that lineage. If this is after a compress operation, this indicates there are 289 states that cannot be compressed together to collapse that lineage without affecting the versioned table structure. A likely cause of this is that there are versions that directly reference those states. You can see ...


4

As @JasonBirch said, version control is a huge issue. Also we've found that an appropriate workflow is hugely important. For example when we're collecting field data we tend to use staging databases where the field data can be QA'd before being merged into the master dataset. Depending on how much data needs to be QA'd this will always create some overhead ...


4

Ok, I found a tool myself: http://www.obviously.com/gis/shpdiff/ - see if I can make it work.


4

If I understand your question corrrectly IMO the answer is no. Versioning simply stated tracks changes to existing data within the database. I used to use a modelbuilder script to check incoming shape files for "diff" in both the spatial and attributes, make a selection of the new differing data and then export that to a seperate file for import to my db. ...


4

Reconcile is probably not what you are looking for here. You'd want to compress "sdeversion -o compress". The compress moves entries in the add and delete tables into the base table if the states permit. In your case with only the default version this is not a problem. Otherwise you'd have to reconcile all versions against default before the compress to be ...


4

A quick search of the ArcGIS help site turned up a couple of items that might be of use to you. These are all located under the ArcObjects SDK 10 for Microsoft .NET Framework. The first item discusses Listening to Versioned Events The next item discusses Reconciling versions The general arguments for each of these include specifying the source version and ...


4

My understanding of the process would say no. When you rec and post you get entity level conflict resolution (not vertex or attribute level).


4

There are tradeoffs. I don't use this option because it limits the ability to create "check-out replicas" (show stopper for me). Another limitation when you chose this option is that you can't edit feature classes that participate in a topology. Many people use this option because they need to support third party (non-ESRI) applications. When edits are made ...


4

Try disabling archiving before you delete anything. When you disable archiving, you should get a message that gives you an option to keep or discard the history (the _H table). If you keep it, then it becomes a regular ol' feature class. The _H tables track the history of changes to the default version, as you make edits to a feature class that has archiving ...


4

Unversioning removes the A and D tables associated with a single versioned feature class. Any edits not reconciled and posted to the base table will be lost, which appears to be your goal.


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 ...



Only top voted, non community-wiki answers of a minimum length are eligible