1

I have a point feature class in a file geodatabase, I created a raster column to add some photos, but since I have 1300+ lines I can't add every single photo manually, is there a way to add them automatically ? I have a column with the the photos names.

7
  • "Shapefile" is a vector data format, as is file geodatabase. It is not possible to have a shapefile in a geodatabase. Once loaded into FGDB, a shapefile is transformed into a table. There are many possible ways to automate footprint population in a file geodatabase table. The methods involving Python are likely to be the friendliest to a novice.
    – Vince
    Jul 20, 2018 at 12:05
  • 1
    Can you edit the question and elaborate on what the purpose is for adding photos to a field/column (general feature/photo association, or for hyperlinking, or something else)? Also, where do the photos exist currently (in a database or a folder)?
    – artwork21
    Jul 20, 2018 at 12:26
  • I haven't yet used Python for every possible purpose, but I can assure you that inserting rows in a table is certainly within the capabilities of an ArcPy Data Access InsertCursor. You would need to wite a script that queries the source table (via arcpy.da.SearchCursor) and possibly pull metadata from the images (arcpy.Describe) before populating the row array, but such a script is possible.
    – Vince
    Jul 20, 2018 at 12:31
  • @Vince I agree with the answer that says that you cannot update a raster field automatically. I can read it with a da.cursor, but I cannot update it.
    – radouxju
    Jul 20, 2018 at 13:36
  • I spent the better part of two decades doing footprint management for rasters in vector databases. The question is unclear as to the goal, but for anything short of putting the image in the table, an InsertCursor could suffice.
    – Vince
    Jul 20, 2018 at 13:47

1 Answer 1

2

If your photo names in your column match with the filenames you can add them automatically quite easy. But not the way you mention. As far as i know you can´t load the raster-column in the attribute table automatically. But for your exact task there are attachments in ArcGIS. The help page of the tool exercises exactly your task. The only downside is that you need the ArcGIS-Standard license level.

Link to the tool-help: http://desktop.arcgis.com/en/arcmap/10.3/tools/data-management-toolbox/add-attachments.htm The attachments are also show as pictures within ArcMap (via attribute forms from the editor) and are loaded into the FDGB (updating need the to rerun the whole process).

Another option is to just copy your filepath into your table. As you mentioned that you have the photo name already you can use this as a column for joining a list with your file path based on file name. You can create such a list quite easy with the windows explorer. Just copy all files (ctrl+c) and paste them into a text editor (kate as editor works well). You get a list of all file path. Safe the list as .csv and open it in a spread sheet (Libre office for example). Add a column and copy your path. Use find and replace to replace the whole path up to the filename with an empty expression. Now you have your join table with the match column and file path. Add them to your table in ArcMap and use the hyperlink-tool to open the photos. ArcMap sends a call to the operating system to open the file path with your standard application. Downside is that this way the photos are opened outside of ArcMap.

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