Jump to content

 
Photo

Learning Python?

- - - - -

  • Please log in to reply
7 replies to this topic

#1
snowgage

snowgage

    Key Contributor

  • Validated Member
  • PipPipPip
  • 56 posts
  • Gender:Male
  • Location:Bozeman, MT
  • United States

Howdy,

I have a great job where my employers are keen on letting me spend a small portion of my time learning new products/techniques. I've become very proficient using Arc GIS over the last 8 years. I feel like I entered the GIS world without having to learn a programming language. I am proficient coding in the Stat program R but that is my only experience with coding.

Is Python the most directly related coding language to GIS?

Can Python be used to do some tasks that area only available with an ARC Info license?

Would Python be useful in conjunction with open source GIS software?

hope these questions are clear,

best,

Josh

#2
Michael Schmeling

Michael Schmeling

    Master Contributor

  • Validated Member
  • PipPipPipPip
  • 206 posts
  • Gender:Male
  • Location:Kassel, Germany
  • Germany

I can't comment on the usefulness for Arc GIS, but Python is a very powerful scripting language, for which a large number of add ons is available. You can use it for almost everything, including Open Source GIS software, like GMT, GRASS, GDAL etc.
Michael Schmeling
Kassel, Germany
Arid Ocean Map Illustrations
http://maps.aridocean.com
Indie Cartographer
http://www.indiecartographer.com

#3
paul

paul

    Key Contributor

  • Validated Member
  • PipPipPip
  • 75 posts
  • Location:Logan, UT
  • Interests:Running, telemark skiing, GIS
  • United States

I can't speak for open source, but Python is great for ArcGIS, and can also be used with Manifold. It's a straight-forward language, both easy and powerful. For ArcGIS, it is a way to automate or batch geoprocessing steps, almost a replacement for the old AML. If the geoprocessing task requires an ArcInfo license, you still need ArcInfo to run it using python, so no it is generally not a way around an ArcInfo license.

#4
Hans van der Maarel

Hans van der Maarel

    CartoTalk Editor-in-Chief

  • Admin
  • PipPipPipPipPipPipPip
  • 3,881 posts
  • Gender:Male
  • Location:The Netherlands
  • Interests:Cartography, GIS, history, popular science, music.
  • Netherlands

In addition to all the platforms already mentioned, Python can also be used in FME. So it's definately a language worth investing time in. I recently started to dabble in it, coming from a background of (self-taught) Basic, Pascal/Delphi and PHP. Haven't had much change to play with it yet, but it doesn't look too difficult.
Hans van der Maarel - Cartotalk Editor
Red Geographics
Email: hans@redgeographics.com / Twitter: @redgeographics

#5
Matthew Hampton

Matthew Hampton

    Hall of Fame

  • Moderator
  • PipPipPipPipPipPipPip
  • 1,309 posts
  • Gender:Male
  • Location:Portland, Oregon
  • Interests:Playing in the mountains and rivers.
  • United States

Last year, one would have suggested Visual Basic, but that's being deprecated in 9.4.

You might want to also add a language for web applications while your at it (java, flex, silveright, .net). I wish I was an expert at even one of them! If I were going to choose one, I think I would pick Flex.

co-cartographic creator of boringmaps.com


#6
dsl

dsl

    Master Contributor

  • Validated Member
  • PipPipPipPip
  • 225 posts
  • Gender:Male
  • Location:Denver
  • United States

Python is also used in web development (server side).

I started my foray into GIS programming with VBA and then VB.NET and then Python. They all serve valuable different purposes. I see the distinction between the two (at least in the ArcGIS environment) as stand-alone programs versus automation and geoprocessing. So if you want to start to develop your own custom tools for very specific tasks then start to learn about ArcObjects. You can do this through the VBA tool built-in ArcGIS 9.x, but if it is going to be deprecated in version 9.4 then probably start by learning C# or VB.NET. The installation dvds for ArcGIS should have templates for creating toolbars and stuff like that in Visual Studio express. Although I think version 9.2 only has them for VS Express 2005...

If you do a lot of repetitive tasks, then of course Python is where to go. Pretty much every help page for every tool in the toolbox has example python code right next to the commandline example. Honestly, the way I learned Python, was to first create a model in modelbuilder for the task that I wanted to complete, and then in modelbuilder I exported the code to Python, and opened it up in PythonWin (this is found on the installation dvd with version 9.2). Then I started to build on those code examples to add looping through field names, or looping through all the feature classes in a folder.

I hope that helps, and I definitely think any programming you learn will be very helpful in your job.

Cheers,
David

#7
Charlie Frye

Charlie Frye

    Master Contributor

  • Validated Member
  • PipPipPipPip
  • 112 posts
  • Gender:Male
  • Location:Redlands, CA
  • Interests:Base map design/data model, political/election maps; use of historical maps for modern GIS analysis
  • United States

Is Python the most directly related coding language to GIS?

Can Python be used to do some tasks that area only available with an ARC Info license?

Would Python be useful in conjunction with open source GIS software?


IMO Yes, Yes and Yes. Python is the primary scripting language for ArcGIS and if you've got the programming smarts to implement your own version of ArcInfo Licensing level tools, and can do it for less than $5K, then you'll be just fine. You'll have access to all the shape primitives for any data you can read with your ArcView license. There are already many open source samples that deal with ArcGIS directly or are completely independent of ArcGIS--the point is one of the reasons we opted to make Python the scripting language for ArcGIS is that there is a very rich community of Python developers out there doing excellent work. So far, the synergy has been great, and nothing less is expected in the future.

That said, if you don't have the programming background to quickly implement or copy the implementations of others, you're likely much better off spending the $$$ for an ArcInfo license. The challenge is to differentiate business decisions from learning/customization opportunities (versus reinventing wheels).
Charlie Frye
Chief Cartographer
Software Products Department
ESRI, Redlands, California

#8
sqooner

sqooner

    Newbie

  • New Member
  • Pip
  • 1 posts
  • United States

Dive Into Python is a good resource.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

-->