Tree Inventory Data Collection help

2982
7
04-05-2013 10:30 AM
LauraBlackburn
New Contributor III
I have over 15,000 trees that need to be measured at least 3x a year.  I am trying to streamline data collection by using ArcPad to collect tree heights and health in the field. Basically, the map in the background of ArcPad is being used strickly to create new records in the Growth table, I don't need to use the GPS or really navigate in any other way.  I am hoping to create a user interface where a person selects a tree and enters the growth and health data into a related table.  I currently have a geodatabase set up with a tree feature class that has a (1:M) relationship (via treeID) to a table called growth with height data collected many times per year. 

I am trying to figure out how to create a form or applet in ArcPad Studio that will do the following:
1) Allow a user to select a tree
2) open a form with the selected tree's treeID and enter data into the status, height and comments fields of the "growth" table
3) move on to the next tree (treeID + 1)

I am new to ArcPad studio and a bit confused on whether to create an editform/tableform or an applet.  Any help or advice is greatly appreciated, as I have started tinkering with an axf file, but I am quickly becoming overwhemled
Tags (3)
0 Kudos
7 Replies
LauraBlackburn
New Contributor III
What do you suggest...using an Applet to update records in the related table or just using a form?  I  am not really sure what the pros and cons are of each method.  Any help is greatly appreciated!
0 Kudos
IvanKautter
New Contributor III
Have you checked out the Developer Samples for creating related table forms?

<ArcPad Install Folder>\Developer\Samples\RelatedTables\RelatedTablesForm

Also check out the Riverside Sample which demonstrates adding an inspection to a sewer line:

<ArcPad Install Folder>\Samples\Riverside\Riverside_mdb.axf
0 Kudos
LauraBlackburn
New Contributor III
Thanks for the info Ivan! ArcPad Studio is a bit overwhelming with all the files that can be altered.

I found the related tables form, but I seem to be missing the Riverside folder.  Any idea where I can download that?
0 Kudos
GarethWalters
Occasional Contributor III
Hi Laura,

You can find the Riverside sample in your Public documents folder called ArcPad\Samples\Riverside. The Poles layer shows how to use related tables for inspections.

For the ID, I suggest you have a look at the new ArcPad 10.2 Beta at the betacommunity.esri.com/home.html. We know that a lot of people want to have their own unique ID's so we have built a new component called QuickFields and the Expression Builder. You can set a unique id to your field by selecting Unique ID from the list of options.  As this is version is still in beta, feel free to comment and suggest changes.

Most of what of you after seems to be out of the box functionality which should be good news. As long as you have structured it well to begin with in ArcGIS for Desktop in the geodatabase.

Try all that and let me know how you go.

Cheers,

Gareth
0 Kudos
LauraBlackburn
New Contributor III
I think I have my geodatabase structured well.  I spent a good amount of time doing that before starting the ArcPad customizations. 

I have 3 layers in the map: Tree, Line and Plot (see attached screenshot: BasicMap)

There are over 15,000 trees in the Tree Layer, which has a related table named Growth.  This related table contains all of the height measurements taken on the trees in the past.  The Line and Plot layers are basically just used for orientation in the field.  Nothing is being edited except for the Growth table

I have created forms in the Tree layer's using editform and tableform. I was hoping to be able to open right into the related table's form so that I could enter the new tree height and status information, but I can't seem to figure out how to make it all work.  Here's what I want to do, step by step.

1) On Load of .apm file - start an editing session for the tree layer and prompt the user to select a tree
2) When a selection is made, open the related table's form with the following pages: Inventory, Characteristics, Past Inventory (see attached image: tableform).  Inventory and Past Inventory are pages from the related table, Growth.  Characteristics is a page from the Tree layer's editform. Values are filled in from the selected TreeID
3)Include two buttons at the bottom of the Inventory page, "previous" and "Next", to step through the trees one by one as a person works down a Line and back up on the next line. 
4)When the page changes, write the data to the growth table

I have so many questions on using ArcPad Studio, even after the tutorials.  I am not a programmer, although I do dabble being a GIS analyst it has proven quite useful. Any help you experts can provide is greatly appreciated as my deadline for using the application in the field is quickly approaching.

I have an applet I called Inventory and a script called Inventory.vbs.  I seem to have spent a lot of time accomplishing very little.  I added an element to my .apm file and named it Inventory, but I am not sure that it's actually connecting to my Inventory.apa.  I am also unsure of how to call the inventory.vbs script from the applet...I'm starting to feel really lost with this customization.  Anyone got any great pointers for a newbie or someplace else to look for help/code?
0 Kudos
LauraBlackburn
New Contributor III
okay, I am making some very minor progress.  I have created a button that when clicked starts an editing session on my tree layer.  It prompts the user to select a tree and I would like to then open the form next, but can't seem to figure out how to do that...ideally I could get it to pull up the tableform, but from what I have read that sounds like it's impossible.  Here's my code...any help is greatly appreciated

Sub StartInventory()
  'start editing tree layer, ideally when the project opens
  Dim objLayer
  Set objLayer = Map.Layers("Tree")
  If objLayer.CanEdit then objLayer.editable=true
  'if no tree is currently selected then prompt user to select a tree
  Dim PromptText
  PromptText = "Use the bookmarks or the find tool to navigate to your starting point." & VBNewline & "Then use the Select tool to hightlight your inventory starting point."
  If (Map.SelectionLayer Is Nothing) Then MsgBox PromptText, vbInformation, "Select A Tree"
  'when a selection is made then open the inventory form
  Dim pRS
  Set pRS = Map.SelectionLayer.Records
  pRS.Bookmark = Map.SelectionBookmark
  Application.Map.Layers.Item("Tree").Forms.Item("EDITFORM").Pages.Item("pgTree").Activate
End Sub
0 Kudos
GarethWalters
Occasional Contributor III
Hi Laura,

Sorry its been a while since my last reply. How are you going with this? I just wrote on your other forum question hopefully answering this one too.

Let me know how you are getting on.

Cheers,

Gareth
0 Kudos