Slashdot Mirror


Python Included In ArcGIS 9

Party_Pack writes "ESRI, the makers of the GIS (Geographic Information System) Arc/INFO (as well as ArcView) and its more modern COM based successor ArcGIS are once again, in the just released ArcGIS 9, giving their users the choice of a fully featured scripting language rather than just the hideously complex ArcObjects/full programming language model they currently offer. Interestingly they have chosen to move away from their tradition of proprietary languages such as AML and Avenue and use Python. This is great news for both ArcGIS users and the Python community, as ESRI will hopefully feed any development work back into the community."

28 comments

  1. Not only Python by Bazouel · · Score: 4, Interesting

    Any scripting language that supports COM can be used with ArcGIS 9. For example, Perl is also supported.

    --
    Intelligence shared is intelligence squared.
    1. Re:Not only Python by Party_Pack · · Score: 2, Interesting

      True but ESRI are actually including Python with the ArcGIS 9 installation :)

    2. Re:Not only Python by Bazouel · · Score: 0, Flamebait

      Honestly, someone doing geoprocessing code in Perl is asking for troubles ...

      --
      Intelligence shared is intelligence squared.
    3. Re:Not only Python by Anonymous Coward · · Score: 0

      I've seen Perl used for geoprocessing. Granted, it takes a disciplined programmer, but it can be done well.

    4. Re:Not only Python by CodeMonkey4Hire · · Score: 1

      Yeah, but how many people do you work with that are not disciplined enough? Throw another developer or two into it and you would likely have a mess. You need a LOT of structure if you want to interface with the ArcObjects library. It does not play well with others.

      --

      Let's go Hurricanes!!! 2006 Stanley Cup Champions!!!
    5. Re:Not only Python by Anonymous Coward · · Score: 0

      I *ALLWAYS* use PHP for *EVARYTHING*.

      PHP is *SOOOO* graet!!

      --
      Atlonh 3.5GHz
      ASUS W00t-Board
      Triple ATX (modded so it looks raelly ugly)
      Windows XP Proffesional
      Gennto Linuks

  2. Catching on. by AJWM · · Score: 2, Interesting

    This is cool. Python does seem to be catching on as the embedded scripting language of choice for apps that combine attributes and graphics (eg modelling tools like Blender, as well as GIS). (I've pretty much decided to reject Tcl for Python in Cavor, too). Now if we can just come up with some standard APIs for similar functionality.

    On the other hand, there are some advantages to a scripting language highly tailored to the application domain -- although (IMHO) AML and Avenue aren't exactly stellar examples of this. (I'm thinking more of the GML scripting language for GeoVision's -- later Autodesk's -- VISION* products).

    --
    -- Alastair
  3. Experience shows otherwise by shachart · · Score: 5, Informative

    From my experience of programming against ESRI, I seriously doubt the company will contribute anything back to the community. For instance, in a project I once worked on, we developed custom renderers (i.e. custom icons to be displayed on maps etc.), and back then it was pretty much unsupported. The only way we could get support for this was to contribute our custom renderer to ESRI. Did we get any real support from them? no. But our framwork eventually became ArcGIS version 6's renderer hierarchy templates.

    They have a reputation for not contributing anything back. User, beware.

    --
    Those who can, do. Those who can't, consult.
    1. Re:Experience shows otherwise by CodeMonkey4Hire · · Score: 2, Informative

      And there customer service model is terrible. I am supposed to pay them money to report bugs to them, even if I don't want support! There is no free bug-reporting. They act like you're [or your problems] not important unless you are throwing even more money at them (they're licenses already cost a painfully large amount).

      I ended up sending my bug in through some email I found on their website (I wonder if it made it to the developers or the trash bin). It is extremely painful to work around it and I imagine that it would be an easy fix, so I am very interested in seeing if the fix made it to v9. I wouldn't bet on it though.

      --

      Let's go Hurricanes!!! 2006 Stanley Cup Champions!!!
    2. Re:Experience shows otherwise by SuperDuh · · Score: 4, Interesting

      I agree. I've been doing programming w/ ESRI software in some way or another for 6 years now, and if its taught me anything, its that ESRI surrounds itself with a barrier: No input from the community, no source going out, and definately no help with (let alone acknowledgement of) any bugs/issues with their software. They're a heavily proprietary sw company w/ a tendancy to ignore standards they didn't create (think a GIS equivalent of MS). Don't expect anything back from them.
      I'm done venting now. :)

    3. Re:Experience shows otherwise by Monkelectric · · Score: 1
      ESRI is fucking evil and I hate them... Their salaries are *EXTREMELY* low, they treat their employees like shit ... let me tell you how they treated me like shit:

      I was just getting out of college, and sent their Redlands, CA office a resume, a few weeks later I get a call "Hello mr so and so, we recieved your resume and are EXTREMELY interested in you. Are you still avaliable? Great, can you call back in two weeks? The manager who needs to interview you is out of town."

      I follow their instructions and call back in two weeks, the HR lady says flatly "we gave the job to someone else."

      --

      Religion is a gateway psychosis. -- Dave Foley

    4. Re:Experience shows otherwise by Anonymous Coward · · Score: 0

      And there customer service model

      "their".

      they're licenses

      "their".

      found on their website

      "their".
      Oh, wait, you go that one right.

  4. Data free? by Anonymous Coward · · Score: 0

    Is the actual data free? Or is it just the interface that's free?

  5. Naive submitter. by Anonymous Coward · · Score: 1, Insightful

    This is great news for both ArcGIS users and the Python community, as ESRI will hopefully feed any development work back into the community

    Why should they be expected to? Python is under the BSD licence. And I would not expect an application of the language to be making changes and additions to that language. The language drives them, not the other way around. They should be keeping compatibility with Python.

    The I expect them to contribute is possibly a bug report or two - maybe even a very minor fix - but it's stupid to expect anything other than that. Python is a mature language that they're using as a convenience for themselves and their users. It's going to be so that they can think less about their scripting language. Nothing more.

    I suspect the submitter is a little naive and possibly new to the world of commercial software.

  6. Trying to predict the next 2 years... by dotz · · Score: 5, Interesting
    Being regular Python user/fan, each news, which features Python makes me happy. How do you think, will Python become more and more popular in the next years? I think so.
    • web development: Not only Zope and Plone, there's a lot of interesting development going on with Twisted... and, well, Twisted is not only about the web, it is about networking in general;
    • .NET / Java development in general: Python in Java exists already... Java gaining more and more popularity? No problem, Python is already there. .NET/Mono taking the market away from Java? The industry will perhaps support more and more .NET techniques - with IronPython (featured recently on /.), Python is already there. No problem;
    • some people might wonder if you really need that stinkin' .NET/Java stuff at all - Python is already very portable, but that's not everything - it already supports a wide range of MacOS/Unix/win32-specific functionalities.
    • anything else makes you wonder, if Python is a good choice at all? What about realtime applications, like a VOIP phone (GUI included, win32/unix compatible) in Python? Do you read "interpreted" as "slow", do you wonder if Python is good enough to be useful in CPU-demanding programs like games? Anything else against it? Perhaps you're worried about Python's extensibility?
    • if software telephony sucks for you, perhaps you should try a real mobile phone
    Is there anything you would like to add to the list? Do you also think 2005/2006 will be the years of Python hype? Having a small part of good things about Python, I'd really like to hear, where does it suck for you. There are many, many things I don't know about it... ;)
    1. Re:Trying to predict the next 2 years... by Anonymous Coward · · Score: 0

      Honestly, I think people will eventually realize that Python doesn't give you that much. You almost might as well be using a "lower" and faster language like Java, C#, C++, or whatever.

      Truly useful scripting languages like Perl definitely provide what a scripting language needs. They make development fast and easy. Python forces you to do the same things you do in lower languages. It's not that convenient, it doesn't make development faster. I don't see the point when all it does is slow down the runtime environment.

    2. Re:Trying to predict the next 2 years... by dotz · · Score: 1

      Hm, could you point out, what do you mean by " Python forces you to do the same things you do in lower languages." ?

      Also, your view of Java as somehow "lower" language to Python is also interesting for me. Could you please be more descriptive on this topic?

      Thanks.

    3. Re:Trying to predict the next 2 years... by Anonymous Coward · · Score: 0

      It's just that writing Python code is no different than writing in a low(er) level language. I mean, it's suppose to be a scripting language. That should mean very "high level", easy, quick to program in, lots of convenience features. Python doesn't really have any of that. Your code ends up being very verbose and tedious to write and looks almost exactly like a low level language.

      A great example is to go write some Java/C#/C code making extensive use of regular expressions. Then do the same thing using Python. Notice how the code looks almost exactly the same. What is Python buying you? (hint: nothing) Then do the same thing in Perl. Notice how easy it is because RE's are built into the language and seamless.

      Regular expressions are a good example but certainly not the only.

      Also, your view of Java as somehow "lower" language to Python is also interesting for me. Could you please be more descriptive on this topic?

      I guess I'm saying that Python and Java are at the same level. However, there are [better] scripting languages out there that are a lot higher level and quicker to use than Python.

    4. Re:Trying to predict the next 2 years... by daveaitel · · Score: 1

      That's crazy. There are many good scripting languages out there, but Python is a _general purpose_ scripting language. It can be used for anything from end-user GUI development, to complex simulations, to compiler writing, to nearly anything else.

      One of the great things about it is the dynamic and strong type enforcement. In short, it has automatic "templating" that makes C++'s STL look insanely complex and useless. Extending your inner API functions is easy and painless, unlike Java, C, C++, or even C#.

      And that's just one of the many great things about it.

      The other major advantage is readability. C#, Java, C, etc, are all unreadable to beginning programmers. Python programs I've written often come back to me with patches from non-programmers. That's never going to happen with Mono programs.

      -dave

  7. Python/ArcObjects Code Samples by CodeMonkey4Hire · · Score: 1

    I am a developer of apps/modules that run inside ArcMap (using VB.NET). I am very interested in getting some of our GIS to learn how to script in ArcObjects so that we can develop a bunch of 'mini-tools' in-house.

    I know it just came out, but are there any good websites that will help teach non-programmers how to use Python in ArcMap/ArcObjects (besides esri.com)? Are there some free download sites? How about more advanced Python (for power users in other languages)?

    --

    Let's go Hurricanes!!! 2006 Stanley Cup Champions!!!
    1. Re:Python/ArcObjects Code Samples by Teddy+Caddy · · Score: 2, Insightful

      I get a newletter from ESRI and I have gotten it for the past 4-5 years. They ran an article about 8-12 months ago talking about python and how you can use it to write customized stuff for ArcView and ArcGIS. So I think you can use python with older ESRI software and I think that a lot of demo or tutorial python stuff is out there.

  8. Ugh. by Anonymous Coward · · Score: 1, Interesting

    I'm developing a large ArcObjects-based extension to ArcGIS -- version 9. We're using C#, which, though it ain't python, isn't a bad language either.

    Trust me on this: No language will make ArcGIS fun, or even marginally handy. That application is the worlds' largest heap of disgusting bloat, and it is buggier than hell. Have a look at the object diagrams (warning: 10Mb PDF, not that I feel any guilt about slashdotting ESRI) and see for yourself...

    Avenue was a joy by comparison, although it was extremely limited. Probably _because_ it was extremely limited; it was also extremely clean.

    Bottom line: if you use ArcGIS, expect to go spend 50% of your development time cursing ESRI and smashing your forehead on your keyboard: adjust your schedule accordingly.

  9. 800 lbs Gorrilas by mactari · · Score: 1

    It is right annoying. We did have an ArcGIS developer drop by to let us know exactly what was happening on the server versus client front. They seemed awfully schizophrenia -- they'd just sold out to COM with ArcGIS in a big way, but everything about ArcIMS (ActiveX connector dev freezing, cross-platform server installs and new Linux support, Java "MapObjects") pointed everywhere but Microsoft. They pretty obviously have two sides of the house -- and you wonder sometimes if either is really communicating with Jack (the CEO/pres/owner/whatever/rich balding white guy at the top).

    A little more O[n]T, I tried to get them to open source their ArcIMS Author application, which was (iirc) written in Java. After they released their MapObjects for Java, every function Author had (display map content to show the state of an XML file you were authoring, no less) was out there. Even though they had no real industry secret -- and though I got an ESRI developer to admit the Author app was only "60% feature complete", no open sourcing.

    Just to say I wouldn't read into any one annoucement's effects on the entire company too broadly. Linux on server doesn't mean they aren't selling out 100% to COM on the client. And Linux support and now Python on the client doesn't mean they're getting any friendlier to open source in any meaningful way. As others have pointed out, support isn't job one, nor is returning the favor open source software's given them.

    (Fwiw, I support a soon to be unmothballed open source ActiveX ArcIMS template. Not sure if that helps or -- due to disuse -- hurts my claims to expertise here!)

    --

    It's all 0s and 1s. Or it's not.
  10. Actual Relevant Python Quote From The Site by osewa77 · · Score: 2, Informative

    "Because geoprocessing often involves processing many datasets or datasets with many records, geoprocessing tasks typically are repetitive and good candidates for automation. Any scripting language with a COM interpreter, such as Python, JScript, or VBScript, can be used to write scripts that execute ArcGIS Desktop 9 geoprocessing tools and automate tasks. Because these scripting languages are not proprietary, many resources for learning them are available." Source
    __________________
    working & blogging from nigeria

  11. ESRI is the MS of GIS by GISGEOLOGYGEEK · · Score: 2, Interesting

    Why are so many of you happy? You should all be flinging huge piles of crap at ESRI despite their attempt to modernize and diversify!

    After all, in the world of GIS, they are MICROSOFT. (cue evil music)

    Get back in character! ESRI is the devil! start flinging insults no matter how rediculous so you can feel like you are part of the group! .... oh, then while you are at it, go opensource ...

    --use MapServer with PostGIS spatial database and save $50,000 over ArcIMS with ArcSDE/Oracle (and have it function 100x better than ArcIMS)

    --use Jump for day to day GIS needs http://www.vividsolutions.com/jump/

    -- go to: http://opensourcegis.org/ for all the rest of your GIS needs (100's of open source programs there)

    I dont understand why any common GIS user would bother with programming large scripts in ArcGIS. I have watched ArcGIS plod along for HOURS using no more than 1% of the CPU ... where ArcView takes minutes, using 100% of the CPU. All so they can tell you to buy ArcInfo for $25,000 saying it gives you the lost speed back.

    I struggled through many courses in ArcGIS, and ArcObjects. It became painfully obvious that even if you can follow the set of 28 ANSI E size pages that make up the ArcObjects object model, you will in the end be stuck with a brutal little program that will crash often, run slow, and may not transfer properly to other machines.

    My professor, who is earning her Masters degree specializing on trying to teach ArcObjects through Online classes (shiver) ... could offer no explanation as to why scripts that would get us full marks could be so horribly unreliable. I suspect she had to keep quiet because of the huge licensing deals ESRI gave BCIT.

    Anywho, ESRI is running scared from the open source world. they are actively attacking the MapServer community because it is such a threat to their product, fighting to stop the government of Canada from using MapServer as widely as they do now. An ESRI salesmen went as far as outright lying to me a few months ago trying to tell me that a well known MapServer proponent here in Vancouver had given up on it, switching to ArcIMS ... not knowing that I knew the guy, and knew he's on the cutting edge, far from giving up on anything.

    ArcGIS 9 with Python ... jump up and down and cheer ... if you are a bloody fool. Many MapServer users have given up on Python. You can do far more, far more easily with the CGI version of MapServer, a PostGIS spatial database on a crappy spare parts linux server ... and a little ASP here and there to help things along.

    --
    George Bush + Linux = "I will not let information get in the way of the fight against Windows"
    1. Re:ESRI is the MS of GIS by Anonymous Coward · · Score: 0

      If anyone is looking for a full featured open source package, try this Grass (which is also the most mature GIS software ever written -- it's first release was in 1982).

      http://grass.baylor.edu/

  12. ESRI takes a beating, finally! by Anonymous Coward · · Score: 1, Interesting

    This thread is great! Straight talk about the Microso~1 the GIS world. Well actually, comparing ESRI to MS is an insult to MS. Microsoft actually has nice offices and treats their employees fairly well. ESRI sticks their employees in the smallest cubes and offices ever, and asks them to work in smog capital of the US: Redlands, CA (it makes nearby neighbor Los Angeles look like Hawaii.)

    If you ever want to see real life Big Brother, go to the annual ESRI User Conference. 10,000 people sitting in a room while Jack Dangermond (ESRI president and owner) rambles on about how GIS will change the world (and ESRI will be the one holding the reins.) Put quite simply, the guy is nuts.

    The Arc8 platform, that has been out for about 5 years now, is still very green. In the last two years it has gotten a lot better, but it is still very slow, buggy, and rough around the edges. The last 5 years has felt like beta testing.

    SDE is developed first for Oracle and then ported to other databases, thus it works terribly on MS SQL Server. Getting it to work for any kind of serious enterprise application (100+ users) requires a shit load of hardware, and custom development.

    ESRI does not support third party developers at all. In fact they see all of them as competitors. They often ask companies that already support ESRI products or resell them, to sell stock to Jack just so they can get "the inside track" from ESRI and things like free software and training (which most companies give to resellers/developers anyway.) Then if these companies innovate using ESRI products, they are pressured from ESRI NOT to release software that might in anyway compete with ESRI offerings.

    ESRI has no accountability because they are wholly owned by Jack Dangermond. His dictatorship is what currently drives almost the entire GIS segment of IT software. GIS is used by private industry but mostly government, at every level (state/local/federal.) He very much has this market by the balls, and nobody is paying attention to any of his anti-competitive practices.

    Hell hath no fury like vertical market software companies!

  13. Python :: GRASS? by funkmeister · · Score: 1

    I hope this is not getting off topic...but...I am rather new to GIS, and I have a lot of discretion in choosing my tools so I was looking at either using ESRI or going with GRASS. I have known about python+ESRI for awhile and I love Python, but I decided to go with GRASS. My main reasons where that GRASS runs on OS X, and GRASS is very powerful. GRASS users claim that it is the best GIS available...and I also find it very powerful...however I do not have ESRI experience and so I can't make any comparisons. After reading the comments I am glad I didn't go with ESRI.

    My main reason for posting this is to ask if there is a big demand for a Python enabled GIS. GRASS does not have Python hooks - and I think it would be nice if there was. However I am concerned about the performance hit given that one often deals with very large data sets in GIS.