I am considering building a geodatabase that would contain a series of polygon shapefiles. I was curious about the advantages of storing polygon data in a geodatabase vs a shapefile? Also where would I begin in building this database? Something to keep in mind is that all the shapefiles are constantly being edited individually and some may not relate or have different parameters than others. Thoughts on this process and is it worth doing?
All interesting reasons.... let me give you a different point of view that was not expressed here so far.
Geometry is only one aspect of GIS, attached to that geometry (in my shop) is allot of non spatial data that must be shared throughout my enterprise. I also have numerous non GIS users whom use this data in day to day business. Plenty have spoken on the spatial side... the other side of GIS is the data (information).
-Using shapefiles is prohibitive (not impossible) in the sharing of data outside of exporting the data into excel spreadsheets. This causes major data currency problems.
-Using the ESRI File GDB is much like using a shapefile. You cannot share data beyond the ESRI product without exporting the data. There are only buggy beta ODBC drivers to this data set. Hooking up other products MS Office, reporting software etc is not yet possible. (Critical drawback)
-Hybrid Database (PDB) MS Access. This allows for the sharing of data outside of ESRI products. Under certain conditions, multiple users can access the data simultaneously. Cheap version of an GDB enterprise database.
-GDB (SQL server, Oracle etc). Expensive, intensive maintenance and more complex. However, allows for scaling, concurrent editing and sharing of data outside of any given software product.
My shop is planning on implementing an Enterprise Database (future) as the needs and scale dictate. Cost/Benefit/Risk does not allow me to migrate to an enterprise solution at present. However, I have designed a hybrid PDB system to maximize the concurrent sharing of data throughout our agency. The data and spatial data is shared through front end MSAccess DB's that contain links to the various PDB's (ESRI MS Access) and shapefiles (yes we still have few roaming around). Esri's PDB (MSAccess) is an old version of access...our front ends are the latest MS Access software versions so we are able to share the data that is attached to the geometry throughout the enterprise. Almost all third party, without exception, can link with MS Access either directly or indirectly through ODBC. Lastly, my final jump to enterprise, I hope, has been mitigated because I already have defined the rules on the sharing of the data, data is already in table format and has been normalized at least to the fourth degree.
Hope this gives another perspective on your choices.....
There is only one more step if this is a file geodatabase and that is to create a file geodatabase. Otherwise there are no more steps, especially if this is a selected feature being exported. And the benefits are no truncated or useless 10 letter field names and domains can be preserved.
I also have never been forced to send out an entire geodatabase or feature dataset if I don't want to, since I can either use Export or Feature Class to Feature Class to avoid that. In any case, for me personally I only would export to a shapefile if the other party was not using ArcGIS software or perhaps an older version of ArcGIS than 10.1, but not to a person that was using ArcGIS 10.1 or higher. Anyway, this particular example as described would not lead me to create a shapefile.
Example.
Client: "Hey can you send over the property boundary polygons for X-location?"
Me: "yeah sure", selects relevant polygons, right clicks layer>export data>shapefile. Zips exported files and emails to client.
A common process, easily accomplished using shapefiles as the final export data.
I don't want to send a whole file geodatabase over that contains not only the polygons I'm concerned with, but also all the other feature classes that sit in the same geodatabase...
I'm not saying it's super-long to set up, but instead that since there are more available options in a geodatabase one usually does take longer to do so. For example, since one has topology as an option compared to shapefiles, one will be setting up a Feature Dataset in a File Geodatabase to house it and its related feature classes. For it to be realistic, the set up of the Feature Dataset will need to include a coordinate reference system. If other feature classes are a component of your topological check, you will need to load them into that Feature Dataset. Then there are Domains, Relationship Classes, etc. That's not to say this is an onerous task; but it does take a bit of time to do compared to a shapefile where one just in ArcCatalog right-clicks and picks New, then Shapefile, and is done outside of assigning a coordinate system (which is optional).
FGDB are awesome, but they do take a bit of effort on the front-end to effectively harness that power.
Chris Donohue, GISP
Don't get the easier to set up point. It takes 15 seconds to set up a FGDB. Although you do have to think about what to call it.
However, I don't believe shapefiles support templates, which makes setting up a new table with standard field names and defaults much easier. I also really hate that shapefiles never seem to have geoprocessing history in their metadata, something I have to use often when investigating old files I did not create.
A huge reason to use a geodatabase is that Attribute Assistant does not work with shapefiles. Attribute Assistant should be part of every editing experience, especially if you run a lot of calculations and things like attribute and spatial joins as part of your data maintenance routines. Those can be eliminated for the most part.
I personally agree that geodatabases seem faster than shapefiles for geoprocessing, but ESRI (see above link) and others in the past have stated that shapefiles are faster. Maybe that's no longer the case?
While we're at it, a few more points on geodatabases vs. shapefiles to add based on my experience:
I have one item you mentioned in favor of shapefiles where me experiences show geodatabases to be equal to or better than shapefiles.
File geodatabases are always the fastest for geoprocessing and cursor access in my experience over shapefiles and that is one reason I never use shapefiles for geoprocessing.
Edit: I reread your last point more carefully and realized my experience did not contradict your point about single user editing.
As others have stated, the biggest factor boils down to which format will fulfill your needs the best. In general, shapefiles are "quick and dirty", while geodatabases offer more capabilities but require more effort to set up. This article has some good points:
Geoprocessing considerations for shapefile output—Appendices | ArcGIS for Desktop
For me, the main points that I find that keep me from using shapefiles that often are:
That said, shapefiles are still useful in many cases.
So it all boils down to what will work given your needs and the advantages/disadvantages of each format. I'd look into each and then see how they stack up to your needs.
This is old, but should still be true for the most part.
The Top Nine Reasons to Use a File Geodatabase
http://www.esri.com/news/arcuser/0309/files/9reasons.pdf
As far as training you can do at your own page I'd suggest reading the following books if you really want to get into geodatabase concepts.
Learning ArcGIS Geodatabases
https://www.amazon.com/Learning-ArcGIS-Geodatabases-Hussein-Nasser-ebook/dp/B00LB6DKAY/ref=sr_1_1?ie=UTF8&qid=1468590729&sr=8-1&keywords=geodatabase#nav-subnav
Modeling Our World: The ESRI Guide to Geodatabase Concepts
https://www.amazon.com/Modeling-Our-World-Geodatabase-Concepts/dp/1589482786/ref=sr_1_4?ie=UTF8&qid=1468590729&sr=8-4&keywords=geodatabase
Chevy...Ford...Dodge...etc
But... all data format have their uses and one needs to familiarize yourself with their advantages and disadvantages. If your needs are for mapping, there are one group of options. If your needs are purely for analysis, there is other alternatives. For example, for attribute data (and sometimes geometry) there is nothing less limiting than a *.npy (single) or *.npz file format for ease of storage and recovery. I will leave people to investigate those as well as other more common ones...
I prefer a File Geodatabase over Shapefiles. There are many additional benefits like using Domains (A quick tour of attribute domains—ArcGIS Help | ArcGIS for Desktop very handy when editing, since this will provide drop down boxes with the options to choose from). I also use Relationshipclasses (Relationships and ArcGIS—Help | ArcGIS for Desktop ) a lot and of course there are representations (What are representations?—Help | ArcGIS for Desktop ), subtypes (A quick tour of subtypes—Help | ArcGIS for Desktop ) and other things that might be useful. It completely depends on what you specific use case is.
The major problem I found with geodatabases is you can only have one user at a time editing one.
ie. I used to work in a company where we had 100 feature classes all stored in one geodatabase. I wasn't able to edit a feature class if someone else was currently editing another one from the this same geodatabase.
We eventually had to split all the feature classes into 5 geodatabases to minimise this problem. Splitting it into more would undermine the point of using them in the first place!
shapefiles are also a lot easier to just copy and paste into folders to email to clients. With a geodatabase if you want to send a single feature class, you have to right click-export data to shapefile.
Shapefiles are much easier to share and edit without the need to know arcgis version (and sharing with different GIS eg QGIS, the 2 gb limit can be over-come by joining attributes to a csv (no limit) only the geometry has the shapefile stopping at 2gb.
Still use them today along with MapInfo TAB files. The original product Maplex (A Standalone product by ESRI UK) only excepts shapefile this still used in production as the Maplex Label Engine in ArcGIS today is still not fully functional as the original application an output is still better than ArcGIS outputs.
Have used Geodatabase for Domain and Subtypes (Annotation) but have had issues with different versions of ArcGIS even patched versions.
Yes there are limitations for both - but because getting the work done (an invoiced) shapefile have less impact so still use them day to day.
Vince...I have no need for any of your Or's...which is why I continue to use shapefiles and numpy and I have learned to partition large problems into manageable parts to speed up processing and assemble the results at the end. I suppose the choice of one format over another depends upon what you need to do and how you go about doing it. Also, as you point out, the shapefile could have been done better...perhaps the geodatabase's replacement will provide something that will be useful for me that I can't live without.
Or unless you need higher resolution than day in date fields.
Or unless you need international characters (UTF-16)
Or unless you need BLOB type columns
Or unless you need numeric null values
Or unless you need strings wider than 254 characters (50 in some UTF-8 languages)
Or unless you need UTF-8 column names wider than 3-5 characters
Or unless you need more than 2Gb of attributes or geometries in a single table
There's a lot wrong with shapefiles that couldn't be done better at the infancy of desktop GIS 20 year ago. At some point, "Well, they still work (sort of)" is no longer going to be true.
Personally, I use ASCII before shapefile -- it's just too difficult to undo all of the defects.
- V
I think the manual Tim suggested sums it up nicely. File geodatabases will allow you to use more tools available in the toolbox than shapefiles. Topology is one I can think of right away. You mentioned you wanted to create/edit polygons, if it's parcel data for example and you don't want polygon overlap, topology will help you set rules to clean up any previous work and help you check your future work. As for creating a file geodatabase, open up arc catalog, navigate to the folder where you want to save it, right-click, new, file geodatabase, name it accordingly and your done. You can follow the same procedure for creating feature classes or datasets within the file geodatabase. If you just want to transfer all of the pre-existing shapefiles to your new file geodatabase, right-click, import, add all the desired shapefiles to the list and they will be converted to feature classes.
In general I tend to favor geodatabases, but they do have one drawback, if one person has an *.mxd open that is accessing a feature class in a dataset, another user will not be able edit any of the feature classes within that dataset.
Hope this helps.
John
My personal opinion is that if you don't have a reason to use a geodatabase, don't. There are many special reasons to use GDBs (domains, networks, etc.), but the hassles of sharing data with unknown users (with unknown ArcGIS version, or none at all) is prohibitive for me.
Come on...They still work...especially if you need to work with other software packages including FOSS GIS. The need really depends upon what you do. So unless you need a specific feature of a geodatabase...you can use either
How about it's 2014 and not 1997? Shapefiles were the rage back then; not so much today.
Did you have have a rotary telephone? They worked back in their day too....
If the polygons need to be represented by true curves, you need to use a geodatabase as true curves are not supported in a shapefile.
Thomas,
One difference from to top of my head is, field headers can only have a size of 10 characters in a shapefile and more in a geodatabase.
check this out: http://help.arcgis.com/en/arcgisdesktop/10.0/pdf/building-a-geodatabase-tutorial.pdf
Tim
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.