I am relatively new to GIS.

  • I have an existing shapefile of New Zealand islands that details island name, Lat/Long, island group, area, etc. Included in this shapefile is a unique FID for each island. This information is quite extensive (polygons are provided down to the rock stack level: <0.01 ha in size) but is missing some information. Islands that are quite small, for example, often do not have a name. For my analysis I wanted to add in some of this classification information.

From this picture, you can see that the "Name" field of FID 1507 is missing.

  • I have imported a CSV file from excel that attempts to fill in some of this missing information: I have manually added in names and archipelago groups that were missing from many islands. The FID of these islands remains the same as the shapefile, I just used excel to "fill in the holes" because excel is so easy to manipulate.

You can see here that FID 1507 contains the name "Ernest Island A (Unnamed") within the "Name" Field.

  • I want to append the information that I have added in the CSV file to the existing NZ island shapefile. From my (limited) experience using a JOIN in GIS adds in a new column. Instead, I want to fill in the existing holes of the shapefile with information from my CSV file, based on the unique FID.

Does this make sense?

  • The tool you want is called Join Field desktop.arcgis.com/en/arcmap/10.3/tools/data-management-toolbox/… to append your table to your shape but do not use FID the values are transitory and cannot be relied upon. Use instead TARGET_FID which is constant and hopefully matching. I would suggest importing your CSV into a DBF or personal geodatabase table if you have Microsoft Access, CSV files can be a bit flaky when joined. Jul 20 '17 at 23:26
  • 1
    On re-reading your question I think you want to calculate field desktop.arcgis.com/en/arcmap/10.3/tools/data-management-toolbox/… over the join on selected rows only, but my suggestion on not using a CSV file and FID as a join field still stands. Are you running this in a model, script or interactively in ArcMap? Jul 20 '17 at 23:29
  • Michael, thanks for reaching out. At the moment I am just setting this up interactively over ArcMap but in the near future I will move the data over to MySQL for some database management
    – Zach
    Jul 20 '17 at 23:37
  • Ah, I see. I can't help with MySQL but I will give you some basic instructions on how to calculate in ArcMap. Jul 20 '17 at 23:40

After you've added your join you must start editing in ArcMap to calculate a table with a join, so find the editor toolbar and start editing.

Open the attribute table (like the pictures you have in your question) and you will see the fields of the shapefile and joined fields. Select only the rows you want to update, you can select more than one but should have at least one selected.. when you do this the calculation is limited to the selected rows only. If you have no rows selected then the entire table will be calculated which may not be what you want.

Right click on the field you want to populate and select calculate field, a dialog will open which can be a bit confusing. Find the field in the joined table; the fields will be named with the data.field format, don't be scared it's just telling you where the field comes from. Hint: the joined fields should be closer to the bottom. After you have located the 'from' field double click and it will appear in the box at the bottom with [] around it.. this is normal. Hit OK and the rows will update.

If you do an oops don't worry, you can still stop editing and opt to not save the edits. When you're happy with the calculated fields save your edits.

Note that joins are transitory and only exist in the current map document, if you look at the data in ArcCatalog you will not see the join.

  • Michael, this worked perfectly! You're terrific, thanks for the help. This has saved me a ton of work!
    – Zach
    Jul 21 '17 at 0:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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