2

I have a dbf table and a polygon coverage. How do I join and save the joined data to the coverage without exporting to feature class and then re-creating a coverage in python? I have been looking at playing with info tables, but there is not much info out there on it.

So, if I, in arcpy, use the joinItem, I get:

Traceback (most recent call last): File "G:/Projects/P747/3_Landbase/LB1/Final_Scripts/V_2/Step_04.py", line 36, in arcpy.JoinItem_COVG(Polygon, Table, Polygon, "MKEY") File "c:\program files (x86)\arcgis\desktop10.1\ArcToolbox\Toolboxes\Coverage Tools.tbx", line 2091, in JoinItem arcgisscripting.ExecuteError: Error opening ELIMINATETABLE.DBF Failed to execute (JoinItem).

import arcinfo, arcpy, os, sys, gc, datetime, time
from arcpy import env

print 'Starting....'

env.OverWriteOutput = True
env.qualifiedFieldNames = False
arcpy.SetProduct("ArcInfo")

ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
print 'Start time = ' + st

tbx = arcpy.ImportToolbox(r"C:\Program Files (x86)\ArcGIS\Desktop10.1\ArcToolbox\Toolboxes\Coverage Tools.tbx", "COVG")

env.workspace = "G:\\Projects\\P747\\3_Landbase\\LB1\\multiunion\\m_20150128\\"
Table = "\\\\silver\\clients\\Projects\\P747\\3_Landbase\\LB1\\Eliminate\\El_20150122\\EliminateTable.dbf"
FCLayer = "\\\\silver\\clients\\Projects\\P747\\3_Landbase\\LB1\\TEMP\\\FCLayer.lyr"
TableLayer = "\\\\silver\\clients\\Projects\\P747\\3_Landbase\\LB1\\TEMP\\\TableLayer.lyr"

print 'Loaded Data....'

if arcpy.Exists(FCLayer):
    arcpy.Delete_management(FCLayer)
if arcpy.Exists(TableLayer):
    arcpy.Delete_management(TableLayer)

print 'Deleted Existing Layers....'

for Coverage in arcpy.ListFiles("*_Union"):

    print 'Working on ' + Coverage

    Polygon = env.workspace + "\\" + Coverage + "\\polygon"
    arcpy.JoinItem_COVG(Polygon, Table, Polygon, "MKEY")
    break

What does "support is stopped"? Will I still be able to use my coverage tools?

1
  • That would have to be done in workstation; in ArcGis desktop no tool (that I know of) will 'save as' a coverage. You would have to import the DBF to INFO table then RELATE ADD... it's been a while.. Commented Feb 2, 2015 at 22:12

1 Answer 1

2

I have never used the Coverage Tools but am very familiar with ArcInfo Workstation and AML but I think you should be able to accomplish this in a two step process:

  1. Table To Table (Conversion)

This tool can convert input tables to dBASE (.dbf), geodatabase (personal, file, or SDE), or INFO tables.

  1. Join Info Tables (Coverage)

Joins the item definitions and values of two tables based on a shared item. Joining involves appending items (fields) of one table to those of another through an attribute or item common to both tables. A join is usually used to attach more attributes to the attribute table of a geographic layer.

The above would be the ArcGIS Desktop equivalent of this ARC/INFO procedure:

  1. DBASEINFO
  2. JOINITEM

I would not advocate anyone continuing to use coverage format.

5
  • 1
    Oddly enough Join Info Tables is arcpy.JoinItem_arc... the syntax is similar. From memory it was safe to JOINITEM where in_info_table = out_info_table as all the necessary items and rows are maintained. Commented Feb 2, 2015 at 22:21
  • FYI "ArcGIS for Desktop Advanced: Requires ArcInfo Workstation installed" support is stopped after 10.2
    – Mapperz
    Commented Feb 2, 2015 at 22:22
  • @MichaelMiles-Stimson Yes - I usually (always?) joined items from the join table onto the original.
    – PolyGeo
    Commented Feb 2, 2015 at 22:26
  • @Mapperz, what's this about needing to install Workstation? I'm using an Advanced license but haven't installed Workstation since v9.x; I'm not sure I remember enough ArcINFO commands to do anything meaningful. ArcInfo workstation requires an advanced license but I don't recall anything about it being the other way around. Commented Feb 3, 2015 at 0:24
  • Licensing Information states it resources.arcgis.com/en/help/main/10.1/index.html#//…
    – Mapperz
    Commented Feb 3, 2015 at 1:12

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.