Pee Dee GIS Users Group

Archive for the ‘Tips and Tricks’ Category

Service Pack 4 for ArcGIS 10 to be released in March

Posted by trippcor on February 8, 2012

Esri is planning another service pack for ArcGIS 10. This will be the 4th service pack for 10. It will address several issues. Here are a few that might be of some interest:

  • Changes to layer names inside a group layer file are not saved/persisted when ArcCatalog is closed.
  • ArcMap crashes intermittently when editing while GPS connection is open
  • GPS Toolbar does not recognize COM ports over 9.
  • Projecting annotation from a file geodatabase feature dataset causes the text to draw a huge distance away from the proper location in the output.  This is also reproducible in a personal geodatabase and data in SDE.
  • ArcMap crashes with runtime error when reconciling certain child versions with default
  • Layer with marker fill symbol loses its background color when adding to basemap layer with symbol level turned on.
  • ArcPy local function tools do not accept a Mosaic dataset layer in the TOC as input
  • When composite locator is created in the ArcSDE database, long property names cause it to fail
  • Synchronizing a one-way replica is crashing ArcCatalog and ArcMap
  • Synchronization fails while checking in the edits from a file geodatabase
  • When running the Spatial Analyst > Hydrology > Fill tool and specifying a Z limit, ArcGIS Version 10 SP2 fills less sinks than ArcGIS Version 9.3.1 SP2.
  • Applying a Military Grid Reference System (MGRS) grid 1:500,000 reference system to a data frame with non-WGS84 datum crashes the software
  • When reconciling certain versions that are involved in a Parcel Fabric, the error returned is, “Version could not be reconciled,” with no extended description.
  • Export metadata to FGDC CSDGM format: when an item’s spatial reference uses parameter names that are all lower case, the projection parameters are not exported
  • Reconciling a version with its parent version corrupts the geometric network connectivity
  • When map tips are enabled, the Hyperlink tool’s cursor no longer turns black when hovering over a hyperlinked feature

Those are just a few issues the service pack will address that I found interesting. There are 7 pages of issues addressed with SP 4. For a complete list of the issues SP 4 is to address go to: http://downloads2.esri.com/support/downloads/other_/183410.0_SP4_Announcement.pdf

Tripp Corbin, MCP, CFM, GISP | Chief Executive Officer
eGIS Associates, Inc.
tcorbin@egisassociates.com | www.egisassociates.com
678-710-9710 ext 21 | 866-304-3864 Fax
Esri Certified Trainer | Esri Certified Desktop Associate

Posted in Announcements, News, Tips and Tricks | Leave a Comment »

Esri Technical Certifications – Questions Answered

Posted by trippcor on May 6, 2011

This week I attended Esri’s SERUG conference in Jacksonville Florida. I think SERUG went really well this year. Attendance was up from last year I believe. Presentations were great. It is always amazing to see what folks are doing with GIS and Esri Technology.

One of the hot button topics at this year’s SERUG conference was Esri’s new technical certifications. Renee Schreibman, Esri’s Southeast Training Consultant, had the job of trying to explain the new certifications and what it takes to earn one of the certifications. Renee did a great job explaining the program and answering questions. Here are a couple of highlights:

  1. If I earn a certification will I have to recertify with each new release of Esri? Looks like Esri is following the Microsoft model here. According to Renee, once you are certified you will not need to recertify with each new release. Only with major releases will you possibly need to recertify. In this case there will most likely be an abbreviated “Update your certification” type exam that would focus on the changes found in the new major release. Also you would still be certified on the past versions. This keeps with IT industry standard practices such as the Microsoft and Cisco certification Models.
  2. Do I have to take the associate exam before I take the professional exam? If you are looking to get certified on ArcGIS Desktop, you can skip straight to the professional exam if you feel you are at that level. Other exams currently under development for Developer and Enterprise may have a requirement for you to get associate first and then professional later.
  3. How many times can I take the exam and do I have to pay the $255 each time?  The last part is easy to answer. Yes you have to pay each time you take the exam. I should point out Esri does not make any money from those taking the exams. Most if not all of that fee goes to the Pearson testing folks. So now to the first part of the question, how many times can I take an exam. Basically you can take the exam 3 times. After the third time you have to talk with Esri and get permission to take it a fourth time.
  4. How hard are the exams? Based on my experience and what Renee said, these exams are not easy. They are designed to make sure you have a thorough knowledge of ArcGIS at the level you are being tested for. Esri wants these exams and certifications to mean something. When you earn one you have accomplished something to be proud of.
  5. What is the pass rate on the exams? Still too early to tell. These exams have only been out for a few months and Esri is still gathering data, however see question 4.  I have heard some number passed around on the beta exams but nothing concrete enough to say for certain. I will say it was not a super high pass rate on the beta exams if the numbers I have heard via the rumor mill are even close to correct. As stated with question 4, Esri wants these certifications to have meaning so they are not giving them away. You do have to earn them.
  6. Do I get told which questions I got wrong? No you only get told if you passed or failed
  7. Where can I take an exam? At pretty much any Pearson Vue authorized testing center. These are located all over the place. Go to http://www.pearsonvue.com/esri/ to locate a testing center near you and to register to take an exam
  8. Do I have to complete all the recommended training classes before I take a Certification Exam? No, you don’t. The list of recommended classes contain topics which might be included on the exams.
  9. If I have not upgraded to ArcGIS 10 yet can I still take the exams?  Yes you can but you will have a hard time passing. The exams are all built around ArcGIS 10. If you are not familiar with the new functionality such as Feature Templates, Dynamic Test and Data Driven Pages you will be at a severe disadvantage taking the exam.
  10. Does this compete with the GISP especially since they are considering an exam? No, the two are complementary. The Esri Technical Certifications only test on knowledge about using Esri products. A GISP exam, if implemented, would test on a more rounded and theoretical knowledge most likely based on the Dept. of Labor Geospatial Core Competency Model (GTCM).

So there you go, my brief summary of Renee’s presentation and some of the questions that were asked/answered during the presentation. Renee’s presentation will be posted to the SERUG website at some point soon. In the meantime you might want to go to http://training.esri.com/certification/ if you have any questions or are looking for more information. Of course I am always happy to answer questions or help to find answers.

Tripp Corbin, CFM, GISP
Vice President, GIS
Keck & Wood, Inc.
Esri Certified Trainer | Esri Certified ArcGIS Desktop Associate

Posted in Announcements, Tips and Tricks, Training | Leave a Comment »

Extract day of the week from a date field in ArcGIS

Posted by trippcor on December 15, 2010

So your are ArcGIS 10 (ArcView licence only) and have a large dataset with a Date field. You want to select all those dates that fall on a specific day or days of the week. How would use do this only using the tools in ArcGIS? Try this:

1. Add an integer field to the table

2. Use the field calculator and vbscript syntax YourDOWField = DatePart (“w”, [YourDateField]).

3. The field will then contain values 1-7 which translates to Sunday – Saturday. You can then select on this.

Tripp Corbin, CFM, GISP
Vice President, GIS/IT
Esri Authorized Instructor
Esri Certified ArcGIS Desktop 10 Associate
Keck & Wood, Inc.
www.keckwood.com

Posted in Announcements, Tips and Tricks | Leave a Comment »

Creating a Locator Frame in ArcGIS 10 if you use data driven pages

Posted by trippcor on November 29, 2010

I, like many of you, have used the old DS Mapbooklet Plotting sample code for many years. It has been a wonderful tool and one I cannot do without. ArcGIS 10 introduced Data Driven Pages which basically incorporated much of the DS Mapbook code directly into the core ArcGIS Desktop products.  The one thing that has been driving me crazy is how to reproduce the local Map Locator that DS Mapbook had. I found the following steps on the ArcGIS Forums today posted by David B from Esri.

Create a Map Locator Frame

You can do this with the data frame extent options. In 10.0 there are new options that allow you to drive the extent of one data frame based on the extent of another data frame.

To make a locator map that automatically adjusts as you page through your map series try this:

  1. Go to the properties dialog for your locator data frame and select the Data Frame tab.
  2. In the Extent section at the top select “Other Data Frame” from the dropdown.
  3. Now you should see options to “Derive the extent from another data frame’s extent”. Make sure the DDP data frame is selected in this dropdown (it might show a different data frame selected by default if you have more data frames in your map).
  4. Set the margin options if you want a consistent margin, or select “Zoom to features that intersect the other data frame’s extent” if you want to make sure surrounding features show. The latter is useful if you index layer is a rectangular grid, for example.

Here is the link to the original source I found this on: http://forums.arcgis.com/threads/16422-Map-Locator-with-DD-Map-Book

Hopefully many will find this as helpful as I have.  

Tripp Corbin, CFM, GISP

Posted in Tips and Tricks, Training | Leave a Comment »

Access your GPS Radio with VB.Net code

Posted by pdusers on November 18, 2010

What follows is the code for a module that can be inserted into a VB.net project. Call the sub with the comm port that the GPS radio is on and you are set. Also add a Serial Port Control to your form and name it “serialPort”. Timeout is required in case an incorrect serial port has been specified.

Programming note: Even with the timeout set in the code, the application will lock up if an incorrect, but active comm port has been specified. If you know of a fix post it in the comments.

Imports System
Imports System.IO.Ports

Module gps

    Public strLatitude As String = ""
    Public strLongitude As String = ""

    Public Sub queryGPS(ByVal cPort As String)
        Dim loopCount As Integer = 0
        Dim GPSOutput As String = ""
        Dim GPSGPRMCStr As String = ""
        Dim newLineStr As String = "$"
        Dim aStrSplitItems() As String
        Dim NSHemi As String = ""
        Dim EWHemi As String = ""
        Dim EW As Integer = 0
        Dim NS As Integer = 0
        Dim commQuit As Boolean = False
        Dim portClosed As Boolean = False
        Dim dblLatitude As Double = 0
        Dim dblLongitude As Double = 0
        Dim wsLatitude As String = ""
        Dim wsLongitude As String = ""
        'Set sentence to parse from GPS Output. Use GPRMC GPGLL, or GPGGA
        Dim strSentence As String = "GPRMC"

        'Reset coordinate variables()
        strLatitude = ""
        strLongitude = ""

        On Error GoTo Errhandler

        'Calls Serial Port Control on main form. Add Serial Port Control to form and name it "serialPort"
        'Timeout is required in case an incorrect serial port has been specified. Application will freeze
        'if timeout is missing or too lengthy.
        frmMain.serialPort = New SerialPort("COM" & cPort, 4800, Parity.None, 8, StopBits.One)
        frmMain.serialPort.ReadTimeout = 5
        frmMain.serialPort.Open()

readLine:
        Dim cCount As Integer = 0

        If portClosed = True Then
            frmMain.serialPort.Open()
            portClosed = False
        End If
        'Read GPS data from Device - Geographic Position, Latitude/Longitude
        GPSOutput = frmMain.serialPort.ReadLine.ToString
        GPSGPRMCStr = GPSOutput

        'Test string for debugging without a good GPS signal
        'GPSGPRMCStr = "GPRMC,174607.000,A,3411.3450,N,07946.0365,W,0.44,160.26,020910,,*12"

        If GPSGPRMCStr.Contains(strSentence) Then
            commQuit = True

            For i = 1 To Len(GPSGPRMCStr.ToString)
                If Mid$(GPSGPRMCStr.ToString, i, 1) = "," Then cCount = cCount + 1

                Select Case strSentence 'Set the line the program reads in the DIM statement above
                    Case "GPRMC"
                        Select Case cCount
                            Case 3 'Start collecting latitude
                                strLatitude = strLatitude & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 4 'Get Hemisphere
                                NSHemi = NSHemi & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 5 'Start Collecting longitude
                                strLongitude = strLongitude & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 6 'Get Hemisphere
                                EWHemi = EWHemi & Mid$(GPSGPRMCStr.ToString, i, 1)
                        End Select
                    Case "GPGGA"
                        Select Case cCount
                            Case 2 'Start collecting latitude
                                strLatitude = strLatitude & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 3 'Get Hemisphere
                                NSHemi = NSHemi & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 4 'Start Collecting longitude
                                strLongitude = strLongitude & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 5 'Get Hemisphere
                                EWHemi = EWHemi & Mid$(GPSGPRMCStr.ToString, i, 1)
                        End Select
                    Case "GPGLL"
                        Select Case cCount
                            Case 1 'Start collecting latitude
                                strLatitude = strLatitude & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 2 'Get Hemisphere
                                NSHemi = NSHemi & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 3 'Start Collecting longitude
                                strLongitude = strLongitude & Mid$(GPSGPRMCStr.ToString, i, 1)
                            Case 4 'Get Hemisphere
                                EWHemi = EWHemi & Mid$(GPSGPRMCStr.ToString, i, 1)
                        End Select
                End Select
            Next
        Else
            GoTo readLine
        End If
        strLatitude = Microsoft.VisualBasic.Right(strLatitude, Len(strLatitude) - 1)
        NSHemi = Microsoft.VisualBasic.Right(NSHemi, Len(NSHemi) - 1)
        strLongitude = Microsoft.VisualBasic.Right(strLongitude, Len(strLongitude) - 1)
        EWHemi = Microsoft.VisualBasic.Right(EWHemi, Len(EWHemi) - 1)

        If NSHemi <> "" Then
            If NSHemi = "N" Then NSHemi = "" Else NSHemi = "-"
            If EWHemi = "E" Then EWHemi = "" Else EWHemi = "-"
        End If

        'Convert Lat and Long to decimel
        '********************************************************************
        'Strip leading Zeros
        dblLatitude = CDbl(strLatitude.ToString)
        dblLongitude = CDbl(strLongitude.ToString)
        'Add polarity
        If NSHemi = "-" Then
            dblLatitude = dblLatitude * -1
            NS = -1
        Else
            NS = 1
        End If
        If EWHemi = "-" Then
            dblLongitude = dblLongitude * -1
            EW = -1
        Else
            EW = 1
        End If

        'Move decimel place two places to the left
        dblLatitude = dblLatitude / 100
        dblLongitude = dblLongitude / 100

        'Get values left of decimel
        Dim leftLat As Integer = Math.Abs(dblLatitude)
        Dim leftLong As Integer = Math.Abs(dblLongitude)

        'Get values right of decimel
        Dim rightLat As Double = Math.Abs(dblLatitude) - Math.Abs(leftLat)
        Dim rightLong As Double = Math.Abs(dblLongitude) - Math.Abs(leftLong)

        'Convert to minutes
        rightLat = (rightLat * 100) / 60
        rightLong = (rightLong * 100) / 60

        'Lat/Long in decimel, in case you need decimel degrees instead of degrees/minutes/seconds.
        wsLatitude = Trim(Str(CDbl(strLatitude) * NS))
        wsLongitude = Trim(Str(CDbl(strLongitude) * EW))

        'Lat/long in Degrees/Minutes/Seconds in decimel form
        strLatitude = Trim(Str((leftLat + rightLat) * NS))
        strLongitude = Trim(Str((leftLong + rightLong) * EW))

        frmMain.serialPort.ReadBufferSize = 0
        frmMain.serialPort.Close()
        portClosed = True

        '*********************************************************************
        'Comment out else section when deployed. Work with results in main sub
        '*********************************************************************
        'Sometimes reception is poor and it takes more than one pass of the data to get a fix
        'This section forces another read of the GPS device when the coordinates are null or
        'contain zeros. Note: The application as written will fail on the prime meridian when
        'at the equator.
        If strLatitude = "" Or strLongitude = "" Or strLatitude = "0" Or strLongitude = "0" And commQuit = True Then
            loopCount = loopCount + 1
            If loopCount > 10 Then
                MsgBox("The GPS device is currently not getting a fix, please try again later." _
                      & Chr(10) & GPSOutput, vbOKOnly, "Satellite Communication Unavailable")
                Exit Sub
            Else
                GoTo readLine
            End If
        Else
            'Access web service from arc to return a list of addresses within a certain range of the inspector's location.
            'Web Service is currently in SC stateplane.

            'A google test.
            'System.Diagnostics.Process.Start("http://maps.google.com/maps?q=" & strLatitude & "%2C" & strLongitude)
        End If
        '********************************************************************
        Exit Sub
Errhandler:

        Select Case Err.Number
            Case 5
                Resume Next
            Case 13
                'MsgBox(Err.Number & " " & Err.Description)
                Resume Next
            Case 57
                'MsgBox(Err.Number & " " & Err.Description)
                MsgBox("Comm Port not available", MsgBoxStyle.Exclamation, "Communication Error.")
                Exit Sub
            Case 91
                'MsgBox(Err.Number & " " & Err.Description)
                Resume Next
            Case 8002
                'GPSComm.PortOpen = False
                MsgBox("Comm Port not available", MsgBoxStyle.Exclamation, "Communication Error.")
                'GPSComm.PortOpen = True
                Resume Next
                Exit Sub
            Case Else
                MsgBox(Err.Number & " " & Err.Description)
                Resume
                Resume Next
        End Select
    End Sub
End Module

 

Posted in Tips and Tricks, Visual Basic .Net/ ASP.Net | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.