5

I have two shapefiles of essentially the same objects however, one shapefile has terrible spatial data but great attribute data and the other is the reverse. What I'm looking to do is essentially a join but there are no common fields that I can use as the joining attribute.

Without that common field, I don't believe this is possible, but I thought I'd ask in case someone has done this in the past.

3
  • 1
    Welcome to GIS SE. This is a conflation issue. Depending on the type of data, there are numerous approaches. See here and here, among others here on the SE.
    – Barbarossa
    Commented Aug 12, 2015 at 16:55
  • here's a related question, maybe some useful info: gis.stackexchange.com/questions/152972/compare-similar-lines-and-update-layers/154718
    – mr.adam
    Commented Aug 12, 2015 at 16:55
  • if they are point or polygon I would start with a spatial join to see how well that would work. If Line I would begin with exact match tool and create a key field "ID" for those. Then start working through the rest to releate each row.
    – Brad Nesom
    Commented Aug 12, 2015 at 17:09

4 Answers 4

1

Do you need to have them as a shapefile? If not, try creating a new .gdb and feature class. Create the fields you want/need. Then begin loading the data from your shapefiles to the fields of your choice. It may not be as automated as you would like but this should work. You could export it out again as a .shp if you prefer that or need it as a deliverable.

0

In the Spatial Adjustment toolbar you should be able to use the attribute transfer tool.

1
  • 3
    can you attach a screen shot and explain the use?
    – Brad Nesom
    Commented Aug 12, 2015 at 19:04
0

Your technique will have to vary depending on the scale of geometry differences, and the type of geometry.

Polygon to Polygon could be easy (create points from the poor geometry layer -> spatially join to the good geometry -> look for polygons get have multiple or no points -> manually adjust those)

Point to Point could also be easy (search for nearest neighbour -> manual adjustment for multiple or no matches w/in a tolerance)

In both cases you'll need to run iterations in tolerances to get a balance of good data conflation versus manual edits. It's tough to get 100% automated, but if you get 80% you have still save a TON of manual work.

Line to line is harder, but the same approach can work, but it may take some additional filtering/tolerance efforts to get thing right. (perhaps look for same length/azimuth of lines as well as proximity).

Safe Software's FME has some good transformers (tool boxes) that you can chain together to do some awesome conflation. They allow things to run fast and you can quickly see your results in memory, run alternative scenarios, generate metrics, etc.

0

Do you have access to other tools as well, ex. FME?

I've been wrestling with a similar problem, but have some additional complications as well.

I've had some success with the Attribute Transfer Tool, which will transfer attributes from one line feature to another based on a proximity/ spatial match. This works reasonably well for features that have just shifted a bit but you are then stuck with a line feature class with full attribution. And there is a known bug within Feature to Polygon which prevents carrying the attributes back when re-forming the polygons. SO I've been trying to use FME to get the features back into polygon format.

I'm wondering if a better approach might be to somehow use centroids to re-join the attributes to the spatial in Arc. This would be relevant especially if you need to stay within the ESRI environment...

Sorry, not a conclusive answer, but a bit of a brainstorm. I'll let you know if I finalize a solution for my issue, it's pretty similar to yours.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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