ArcGIS: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
Brian Wilson (talk | contribs)
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
=== ArcObjects ===
2018-Feb I ended up buying a developer license last summer, and IMO it was a waste of money. It was a success in that
I was able to spend enough time with it to become convinced it has very little to offer a small organization or individual consultant.
I should have continued to push forward with PostGIS and the rest of the FOSS stack. Life goes on.
If you have an employer insisting that the ESRI server stack is the only way to go (as I currently do), good for you, someone else
can bear the cost and responsibility for the decision.


==== What is "ArcObjects" ====
2014-Mar-20 At the end of the month, I will be leaving my day job as a c# programmer, giving me more time to do GIS!
I will be losing access to my EDN (ESRI Developer Network) resources.


A set of classes that provide an interface to ESRI's desktop GIS product.
== What can I do with the "ArcGIS for Home Use" license? ==


==== Where to start? ====
What is "ArcGIS for Home Use"? See http://www.esri.com/software/arcgis/arcgis-for-home
'''Do they still call it "home" or is it "personal"?''' I can never keep all the product
name changes at ESRI straight. OH! and I think it's changed to "Esri" now. Not ESRI.


You might want to get a handle on Visual Basic first... or some object-oriented language anyway.
* ArcGIS Desktop Standard (formerly ArcGIS Desktop Advanced) (formerly ArcGIS for Desktop Advanced) (formerly ArcInfo) Version 10.6


* First take the ESRI Campus workshop "Getting Started with ArcObjects in ArcGIS"
These are tools I already have used but look forward to exploring in more depth
* Next try "Getting Started with Scripting in ArcGIS" - includes an intro to Python.
* Next read the book "Getting To Know ArcObjects" (by Robert Burke)
* If you did not already install the Devoper's Tools when you installed ArcMap on your computer, do that. Then go peruse the online help. (Start->Programs->ArcGIS->Developer Help->VB6 Help)


Both the workshop and the book are based on VBA.
* ArcGIS Network Analyst
Any application (such as PowerPoint) or language (Python) that supports COM (or has VBA) can use ArcObjects.
* ArcGIS 3D Analyst
* ArcGIS Spatial Analyst
* ArcGIS Data Interoperability


VBA Toolkit CD - There is a toolkit CD available for free from ESRI. Mentioned in the ArcObjects course. I could not find mention of it on the Web site.
The online access might be fun, have not had much use for it yet.
My plan has always been to use open source for online / web based services because of the very high costs of ESRI server software.


You can visit the ESRI Support Center [http://support.esri.com/index.cfm?fa=downloads.geoprocessing.gateway Geoprocessing] page
If you are just exploring then by all means use the HOME license '''not the developer license'''. The desktop software
with the home license is COMPLETE. The developer license includes only the BASIC level for desktop, and no extensions.


Many ESRI books are available from [http://support.esri.com/index.cfm?fa=knowledgebase.documentation.viewDoc&PID=43&MetaID=694 ESRI documentation library] as PDF files.
* ArcGIS Online Named User account and 100 Service Credits. This is not an "organizational" account, making it pretty much '''worthless'.
You can't publish maps. The only thing I can see it being useful for is accessing some of the non-free data, for example,
the repackaged US Census demographic data. You can get the data from the Census Bureau for free but formatting it for use is
absurdly complicated.


'''Python resources:''' The official [http://www.python.org/topics/learn/ Beginner's Guide to Python] and the book for programners, [http://diveintopython.org/ Dive into Python] (available online, PDF, or even on paper.)
I have never used these ever and look forward to trying them out:
* ArcGIS Data Reviewer ''Data quality control - very interesting''
* ArcGIS Geostatistical Analyst
* ArcGIS Schematics ''Can I represent our WISP network?''
* ArcGIS Workflow Manager ''Does it scale DOWN enough to manage my miniscule projects?''


==== What about older versions of ArcGIS? 8.3?? ====
* ArcGIS Tracking Analyst ''Seems useless to me, I want my real time data on a Web site''


==== What if I don't have ArcGIS Desktop? ====
I know all about Publisher and don't think ArcReader ever got enough traction in the marketplace to be appealing to me.
I wonder when ESRI will actually kill it off.


What if I want an application or tool to run on a Windows client that does not have ArcGIS installed?
* ArcGIS Publisher


What if I want the tool to run on a Linux system?
== ArcGIS For Server ==
 
==== ArcObjects containers ====
I am starting a separate page for [[ArcGIS For Server]].
 
== ArcGIS For Desktop ==


You can group tools for ArcCatalog into toolboxes called .tbx files.
[[ArcGIS and Tiled Maps]]
This is just a convenient way to handle them as groups in the ArcToolbox UI.
The tools themselves still live in their .py files.


=== Languages ===
=== Joins and relates ===


==== VB and VBA ====
'''Joins''' only work right if you have a one-to-one cardinality between your spatial and table data.
If you have other cardinalities you have to use a relate or a relationship class.


Use VB to create complete standalone executables. Or C++ or C#.
After you have created a '''relationship class''' (which requires Standard or Enterprise license)
then you can see related information in the attribute table in ArcMap. Select something and
use the "related table" button in the top bar of the attribute table window to pick which table you want to view.


VBA is the version of VB that is embedded in other apps like ArcMap and Powerpoint. Use it to glue your own custom GIS functionality to those apps.
A good working example is using a taxlot polygon feature class, which has only the taxlot identifier as an attribute;
all attributes are in related tables. For example there is a tax assessor table, a sales history table, and so on.


===== What about .NET? =====
The sales history table is a good example of a one-to-many relationship. One taxlot may have been sold many times so there will be a separate row in the sales history to record each sale.


ArcObjects does not require .NET; any language that supports COM can use ArcObjects. But you can do more with ArcWEB using .NET.
You can also drill down with the "identify" tool in ArcGis Desktop to see related information, here is a picture.
You can see the taxlot id "12509...." is used to relate the parcel to the Main table, and then Main relates to other tables;
I have expanded Improvements and you can see there have been 3 recorded improvements on this property.


There is an ESRI campus workshop called "Migrating to VB .NET" where you can learn more about it. Using .NET requires Visual Studio .NET, which I don't have. That's that.
[[Image:identify_w_relationships.png]]


==== Python ====
===Autocad===


Python is supported in ArcGIS 9.x as a scripting language. (In fact some of the ArcToolbox tools are written in it.) This is nice because it's available cross-platform; if you learn Python you might not have ArcObjects on your Linux box but the language itself is probably already installed there so all the other features are available.
There are web-based tools you can use now provided by Autodesk for working with CAD files.
If you have the Data Interop tools you can work with them in there too.


=== Other languages ===
===Bookmarks===


Not officially supported. Any scripting language that runs
As of ArcGIS 9.x you can load and save bookmarks in files now, of course in yet another undocumented file format.
under Windows and supports COM should work. How about perl?
(ESRI have heard of GPX and XML and KML but have not embraced them yet.)


==== Perl ====
== ArcObjects ==


=== Sample ArcObjects applications ===
I used to have information on ArcObjects and ArcGIS Engine here. Since I am no longer programming c# (ever again if I can help it)
I have removed this information. I am not interesting in doing more ESRI based desktop applications or extensions in the .Net environment.


Check the Conversion Tools in ArcToolbox. Any tool with an "S" icon
Python runs EVERYWHERE. C# runs in .Net Microsoft environments or in Mono. I don't like C# enough to want to mess with Mono.
is a script. Right-click it and select "edit" to see the code. I have
Python 2.4 installed so this does not work. But I can use the Properties
dialog for the script, copy the file name from the Source tab and then
open the file in PythonWin 2.4


[[gpstools]] GPS data processing
[[gpstools]] GPS data processing
Line 104: Line 125:


(3) Model Builder can be used to create tools for ArcToolbox that use form-like interfaces and which do basic editing tasks.  Check out the documentation on that tool for more details.
(3) Model Builder can be used to create tools for ArcToolbox that use form-like interfaces and which do basic editing tasks.  Check out the documentation on that tool for more details.
[[Category: GIS]]
[[Category: ESRI]]

Latest revision as of 20:58, 1 October 2018

2018-Feb I ended up buying a developer license last summer, and IMO it was a waste of money. It was a success in that I was able to spend enough time with it to become convinced it has very little to offer a small organization or individual consultant. I should have continued to push forward with PostGIS and the rest of the FOSS stack. Life goes on. If you have an employer insisting that the ESRI server stack is the only way to go (as I currently do), good for you, someone else can bear the cost and responsibility for the decision.

2014-Mar-20 At the end of the month, I will be leaving my day job as a c# programmer, giving me more time to do GIS! I will be losing access to my EDN (ESRI Developer Network) resources.

What can I do with the "ArcGIS for Home Use" license?

What is "ArcGIS for Home Use"? See http://www.esri.com/software/arcgis/arcgis-for-home Do they still call it "home" or is it "personal"? I can never keep all the product name changes at ESRI straight. OH! and I think it's changed to "Esri" now. Not ESRI.

  • ArcGIS Desktop Standard (formerly ArcGIS Desktop Advanced) (formerly ArcGIS for Desktop Advanced) (formerly ArcInfo) Version 10.6

These are tools I already have used but look forward to exploring in more depth

  • ArcGIS Network Analyst
  • ArcGIS 3D Analyst
  • ArcGIS Spatial Analyst
  • ArcGIS Data Interoperability

The online access might be fun, have not had much use for it yet. My plan has always been to use open source for online / web based services because of the very high costs of ESRI server software.

If you are just exploring then by all means use the HOME license not the developer license. The desktop software with the home license is COMPLETE. The developer license includes only the BASIC level for desktop, and no extensions.

  • ArcGIS Online Named User account and 100 Service Credits. This is not an "organizational" account, making it pretty much worthless'.

You can't publish maps. The only thing I can see it being useful for is accessing some of the non-free data, for example, the repackaged US Census demographic data. You can get the data from the Census Bureau for free but formatting it for use is absurdly complicated.

I have never used these ever and look forward to trying them out:

  • ArcGIS Data Reviewer Data quality control - very interesting
  • ArcGIS Geostatistical Analyst
  • ArcGIS Schematics Can I represent our WISP network?
  • ArcGIS Workflow Manager Does it scale DOWN enough to manage my miniscule projects?
  • ArcGIS Tracking Analyst Seems useless to me, I want my real time data on a Web site

I know all about Publisher and don't think ArcReader ever got enough traction in the marketplace to be appealing to me. I wonder when ESRI will actually kill it off.

  • ArcGIS Publisher

ArcGIS For Server

I am starting a separate page for ArcGIS For Server.

ArcGIS For Desktop

ArcGIS and Tiled Maps

Joins and relates

Joins only work right if you have a one-to-one cardinality between your spatial and table data. If you have other cardinalities you have to use a relate or a relationship class.

After you have created a relationship class (which requires Standard or Enterprise license) then you can see related information in the attribute table in ArcMap. Select something and use the "related table" button in the top bar of the attribute table window to pick which table you want to view.

A good working example is using a taxlot polygon feature class, which has only the taxlot identifier as an attribute; all attributes are in related tables. For example there is a tax assessor table, a sales history table, and so on.

The sales history table is a good example of a one-to-many relationship. One taxlot may have been sold many times so there will be a separate row in the sales history to record each sale.

You can also drill down with the "identify" tool in ArcGis Desktop to see related information, here is a picture. You can see the taxlot id "12509...." is used to relate the parcel to the Main table, and then Main relates to other tables; I have expanded Improvements and you can see there have been 3 recorded improvements on this property.

Autocad

There are web-based tools you can use now provided by Autodesk for working with CAD files. If you have the Data Interop tools you can work with them in there too.

Bookmarks

As of ArcGIS 9.x you can load and save bookmarks in files now, of course in yet another undocumented file format. (ESRI have heard of GPX and XML and KML but have not embraced them yet.)

ArcObjects

I used to have information on ArcObjects and ArcGIS Engine here. Since I am no longer programming c# (ever again if I can help it) I have removed this information. I am not interesting in doing more ESRI based desktop applications or extensions in the .Net environment.

Python runs EVERYWHERE. C# runs in .Net Microsoft environments or in Mono. I don't like C# enough to want to mess with Mono.

gpstools GPS data processing

flightcheck - A utility to read an mxd file and to make creating a cdrom containing all data required

Misc

From the ArcGIS mailing list

Method to insert data entry forms

Eric O’ Neal

Make a new project, or open the macro editor of your old one, and add the form. After that, go back to the map and right click somewhere in one of the grey toolbars. Scroll down to 'Customize'. Click the 'Commands' tab at the top and change the "save in:" to 'your project' (not ' Normal.mxt'. In the left box, scroll down to 'UIcontrols'. Click 'New Control'.->>'Button Control' Drag the new button to a toolbar. Right click the new button and select 'View Source'. You will see the click event. type in:

'frm1.show'

The button should work now. You can make new Toolbars in the 'Customize' part and drag this button on to them if you want.

Lawrence Hartpence

The way that I have brought data entry forms into ArcGIS is by adding UIControls. In ArcMap, go to the "Tools" menu and then select "Customize". Select the "Commands" tab and scroll down to the "UIControls". After you select "UIControls", three buttons will appear below the pick list, click on the one that says "New UIControl..." A window will pop up with an array of different controls you may create. Choose new UIButton Control. Once this control is created, you will see it in a pick list on the Right side of the "Customize" window. Click on the new UIButton control and drag it to one of the toolbars. Once on the toolbar, right click on the button and in the menu which Pops up, choose "View Source". This takes you to VBA. You access the form by typing the form's name Then ".show (0)" in the Sub which is automatically set up for your UIButton control. It will look something like this: Private Sub UIButtonControl1_Click() QueryForm.Show (0) End Sub

Nick Seigal

(1) VBA is embedded in ArcGIS. You can access the Visual Basic Editor from the Tools menu. VBA has its own forms engine that is different from that in VB (more on that later). Much like in Excell or Access, you can create code and even forms that run like macros. These can be added by hand to the interface of a map document or even to the Normal template (so that they are available in all new Map Documents).

(2) VB6 is often used (although you could also use VB.Net, C++ or C#) to create what is called an "extension" to ArcMap. An example of this approach are ESRI's own extensions, such as Spatial Analyst. To add functionality to ArcMap in this way requires fairly advanced VB skills, although there are many small and fairly easily tweaked samples that you might get to work without having to mess with the extension sturcture. All you would need to do is have the Visual Basic 6 development environment on your machine and take an ESRI sample, add the VB form and data editing functionality you want to that extension framwork and compile the extension as a .dll file. Then, when this file is registered with Windows and with the ESRI COM Categories (ESRI Add Ins to VB6 help with these tasks), the fuctionality will Appear like magic in ArcMap.

(3) Model Builder can be used to create tools for ArcToolbox that use form-like interfaces and which do basic editing tasks. Check out the documentation on that tool for more details.