Select to view content in your preferred language

Spatial join with feature classes in three different geodatabases?

174
4
Jump to solution
3 weeks ago
AlexanderGrünberger
Emerging Contributor

Hello everyone,

I need some help.

I'm using ArcGIS Pro 3.4.0, Basic licence and need to spatial join several feature clases.

I know how to spatial join multiple FC, but there are some problems I have no solution for. Here is the situation:

There is a address FC in geodatabase 1 which will be the basis and should also include the other FC.

Two more FC are in geodatabase 2 and another two FC are in geodatabase 3.

By using the Batch Spatial Join tool I'm able to get four attribute tabels:

N°1 with all addresses and the data from the FC in geodatabase 2

N°2 with all addresses and almost no other data from the FC in geodatabase 2 (that's ok, I can use N°1)

N°3 with all addresses and the data from the FC in geodatabase 3

N°4 with all addresses and almost no other data from the FC in geodatabase 3 (that's also ok, I can use N°3)

 

After this step our usual workflow would be: copy the data needed from the attribute table and import it in an Excel file where several formulars are bringing the information needed from one sheet to another. That works.

But I need the data from all the four FC (geodatabase 2 and 3) in one attribute table so that I can easily copy that into the Excel file and get the right output. If I have to use two attribut tables my Excel file is no longer working (or at least it's getting really complicated).

Is there a possible way to work with different geodatabases and getting all the data described above into one attribute table?

Thank you for your help in advance!

Bye

Alex

 

PS: Bringing the data from all four FC into one FC would theoretically work, but would also create an incredible large and complex attribute table. When we started creating our project model as basis for all our future projects we decided it would be easier to work with several geodatabases rather than just one (company plans for FTTx related projects).

 

0 Kudos
1 Solution

Accepted Solutions
RPGIS
by MVP Regular Contributor
MVP Regular Contributor

So, the join field applies a one-to-one join on two separate feature classes and does a one to one or one to many matches, depending on how you create the join. You would have to join, for example, FC1 to FC2, then Join FC3 to the now joined FC1 and FC2. The other thing you want to make sure of is that the ID field is populated for all records that it is shared with, otherwise it may show null values for some.

Since you are working with 3 different feature classes then it might make sense to combine them all since it seems like you are trying to get unique addresses or values that is comprised in all 3 of them. If that is the case, then the second option might be your best bet. But in order that to work, you will need to make sure that the values you are looking to delete in the address field or fields do not have typos or other data errors. If the addresses are in separate fields, then you would either need to modify the other FCs to have the same number of fields, field types, field lengths, etc. so that it will only delete any duplicate values.

View solution in original post

0 Kudos
4 Replies
RPGIS
by MVP Regular Contributor
MVP Regular Contributor

Hi @AlexanderGrünberger 

If the tables have a common ID/field amongst all of them then you could try joining the tables and then exporting them to an excel file with fields excluded.

Another option is to append all of the datasets into a single dataset and then run the delete identical tool which should eliminate all duplicate values in the fields you specifiy.

0 Kudos
AlexanderGrünberger
Emerging Contributor

Hi @RPGIS 

Thanks for your response.

I put an common ID to all of the FC and all data is no indeed in one table, but the ID field I used exists now three times (three FC in total in one table).

N°1 includes all ID (the original address table)

N°2 includes some ID from geodatabase 2

N°3 includes some ID from geodatabase 3

 

I used 18 addresses out of 98 to try your suggestion. The column "KombiID" was used in all three FC. In the FC from geodatabase 3 is always "<Null>" instead of the ID I used.

How do I get the different colums into one? Or did I possibly make a mistake when I was using the tool "Join Field"?

To make it even more complicated: every address table in every project can be different in terms of the number of columns, so if I don't have the right amount of columns the formulars in the Excel sheet have to be updated. Not much of a problem, because we will have some type of "standard address table" soon, but still...many users, many possible errors.

0 Kudos
RPGIS
by MVP Regular Contributor
MVP Regular Contributor

So, the join field applies a one-to-one join on two separate feature classes and does a one to one or one to many matches, depending on how you create the join. You would have to join, for example, FC1 to FC2, then Join FC3 to the now joined FC1 and FC2. The other thing you want to make sure of is that the ID field is populated for all records that it is shared with, otherwise it may show null values for some.

Since you are working with 3 different feature classes then it might make sense to combine them all since it seems like you are trying to get unique addresses or values that is comprised in all 3 of them. If that is the case, then the second option might be your best bet. But in order that to work, you will need to make sure that the values you are looking to delete in the address field or fields do not have typos or other data errors. If the addresses are in separate fields, then you would either need to modify the other FCs to have the same number of fields, field types, field lengths, etc. so that it will only delete any duplicate values.

0 Kudos
AlexanderGrünberger
Emerging Contributor

Thank you @RPGIS.

I tried using the tools append and add spatial join which  worked perfectly. 👍

0 Kudos