Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have an SDE geodatabase with several feature classes, tables, relationship classes, and domains. All the feature classes are currently in WGS84 coordinate system.

I need an exact copy of the entire geodatabase, but with all feature classes projected in the appropriate state plane coordinate system.

I used the feature class to feature class tool to copy the feature classes from one gdb to another and set the environment output coordinate system to state plane, but I lost all of the relationships and tables. Is there a way to do this in one step without having to recreate all the relationship classes?

share|improve this question
Are there any feature datasets involved? –  blah238 Dec 20 '11 at 18:20
Thank you @blah238 - All my feature classes have the same coordinate systems. I need to reproject all feature classes to a different coordinate system, but they will be in the same coordinate system after the reprojection as well. –  Brian Dec 20 '11 at 18:21
@blah238 - no feature datasets present unfortunately –  Brian Dec 20 '11 at 18:21
But what if there is a transformation involved ? I think it won't work in this case if you just chnaged the "spatial Reference" in XML file. I am also suffering from this. and its strange that it happens . –  user7102 Apr 23 '12 at 10:09

5 Answers 5

I think what you want to do can be done without too much trouble given that there are no feature datasets involved and all the coordinate systems are the same, although it's not a one-step process unless you script it.

  1. Copy your feature classes to a new file geodatabase using Copy/Paste which brings over relationship classes and related tables. (side question, are there any GP tools that can do this? I think not)
  2. Project all your original feature classes to the new coordinate system using an intermediate geodatabase
  3. Delete the contents of all the feature classes in the output geodatabase using Delete Features
  4. Redefine the coordinate system of all your feature classes in the output geodatabase using Define Projection
  5. Append the projected feature classes from the intermediate workspace to their corresponding feature classes (now empty) in the output workspace

If there were feature datasets involved I think this approach would fail because Define Projection doesn't work on feature datasets that are not empty. In that case my fallback plan would be to export the geodatabase to an XML workspace document and munge it by hand or with Python or an XSLT file.

share|improve this answer
Copy_management should do #1 for you I think. –  Chad Cooper Dec 20 '11 at 18:56
Tried it, no worky. –  blah238 Dec 20 '11 at 18:58
I have been working on doing a similar workflow where I created an empty geodatabase with the same schema as the original and set the coordinate system to my desired projection. Now I am going through and appending from each individual feature class to its appropriate new feature class. This is all very tedious. I think this might be something for ideas.arcgis.com –  Brian Dec 20 '11 at 19:10
I should have mentioned you could batch steps 2-5 using the batch dialog. Scripting would also relieve the tediousness :) –  blah238 Dec 20 '11 at 19:13

If this is just a one-time job, you could simply copy the geodatabase in its entirety, then project all of the featureclasses to State Plane. Not very elegant, but it should work. Could be scripted in Python as well - copy the geodatabase then loop through the featureclasses, projecting as you go. You could build a dictionary that has the featureclass names as keys and the target state plane system(s) as the value(s), then call that as you project.

share|improve this answer
Thanks Chad - The problem with that solution is that I would need to recreate all the relationship classes because reprojecting will create a new feature class. –  Brian Dec 20 '11 at 17:35
@Brian - Man, forgot about that. And Copy into a new feature dataset with the target state plane system won't work either. There has to be a way to do this. –  Chad Cooper Dec 20 '11 at 17:55

Here's an article for creating a replica where data in the child has a different coordinate system than the parent. You would just skip the replica creation in step 5:

HowTo: Create a replica where the child replica data is in a different coordinate system than the parent replica data

share|improve this answer
This looks promising. I will give it a try tomorrow. Thanks. –  Brian Dec 21 '11 at 4:15
I gave this a try, but no luck. Theoretically it should have worked, but it kept crashing on me. I think it has to do with the large datasets I am working with. –  Brian Dec 27 '11 at 20:01
@Brian sorry to hear that it's not working. How big are your datasets? –  Timothy Michael Dec 28 '11 at 6:19

I had the same question, and I solved it the same way blah238 says : exporting the geodatabase(or its schema) into an XML File, then modify the Spatail Reference inside this XML file, and reimport it into the new Geodatabase.

Here are the steps :

1) Right click in your source geodatabase, and select "Export/XML Workspace Document"

2) Check "Schema Only", specify the XML output file

3) Press the "Include All" button to select all the features of your geodatabase

4) Then Finish

5) Open the XML file with an editor (like NotePad++)

6) Replace the content of all the "SpatialReference" tags with your new spatial reference

7) Set the content of all the "GridSize0" tags to 0 (useful to reinitiate the grids of the empty datasets

8) Save it

9) Create an empty geodatabase. Right click in it, and select "Import/XML Workspace Document"

10) Select your XML file

11) Once the geodatabase is created, you can append your reprojected data into tables and feature classes

11) You're Done !!

It seems to work well. You have to project all your data separately from the geodatabase, and reimport them (load or append) into the new one

Good luck.

share|improve this answer
up vote 1 down vote accepted

Thanks all for your responses. Unfortunately, none of the solutions mentioned did the trick for me, although I'm sure they would all work under slightly different circumstances.

The resolution is in the following steps:

  1. Feature Class to Geodatabase (multiple) to copy all feature classes from the original geodatabase to the new empty geodatabase.
  2. Set Environments on Feature Class to Geodatabase tool with Output Coordinate System specified in desired new coordinate system.
  3. Table to Table tool (multiple) to copy all tables from the original geodatabase to the new geodatabase.
  4. Manually recreate all relationship classes.

I wish there were a better solution to this, but I just couldn't get it to work without breaking all the relationship classes. I hope this helps someone in the future.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.