Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I'm new to this site which I find useful and refreshing until now.

And to my question ( WARNING: it's a bit long, so you can skip right to the question two paragraphs down).

I was educated in GIS using ArcGIS (Desktop and Workstation) and researched with it with (very) short peeks at MapInfo and uDig . During that time, I was satisfied with the program as I used relatively small databases and didn't do a lot of repeat tasks and ArcGIS has a lot of cool tools to analyze scientific data.

For two years now, since graduation, I been working in a company which is in a whole different scale. I deal with huge databases, doing relatively "simpler" tasks, but moreover they are composed of repetitive tasks (I do a series of simple tasks once a week to the whole database). During this time, I've used AutoCAD (as a lot of our data is drawn using AutoCAD) a lot and grew to appreciate it a lot – The greatest advantage is that using the LISP Programming language and using system variables you can control a whole lot of the settings – whether it concerns customizing the default value for a tool, eliminating the use of dialog boxes in the program, or options to script the automatic opening and manipulation of drawings.

Now, when I get back to the ArcGIS, I get frustrated: Python is a great language, but ArcGIS users can't manipulate default values, can't eliminate the use of certain shortcut keys, can't script the use of MXD's and more and more as I move along (Oh, I'm using ArcGIS 9.3.1, I heard 10.0 is a bit better but still). The Documentation around the Tools is very shallow (The Days of ArcDoc are long gone). I'd say the problem is probably with ArcGIS, except I know that with MapInfo and uDig the situation isn't better (and even worse)

Question: And now I'm wondering – Are there any GIS platforms out there, free or not, that have this high level of customizing, or am I doomed to frustrated manual work? I prefer platforms with a good UI along the scripting options, but that's not a must. My company will probably stay with ArcGIS, but by answering you'll probably make one GIS analyst very happy and probably a lot less frustrated.

share|improve this question
5  
there are tasks in ArcGIS which are eminently scriptable and automatable, others which are definitely not, and a range in between. Dito for all other platforms. If you can give examples of the kinds manual labour you wish to avoid there might be some specific helpful answers. –  matt wilkie Aug 23 '10 at 15:22
add comment

7 Answers 7

I am afraid I disagree with you. I think the ArcGIS help/forums/blogs/vids/etc give a great perspective on what you can achieve with the ArcGIS range of products.

Your not limited to Python to manipulate your spatial data. You can still use VBA at 931 and 10 to access the ArcObjects library, or you could take it a step further and use .NET to do all sorts of things, and again this is well documented.

I also think the shortcuts for ArcGIS Desktop are great, and you can create your own shortcuts via the Customise dialog if need be.

If you dont want to learn how to code, there is also modelbuilder which is a great way of automating tedious tasks/common workflows, particularly with geoprocessing.

I am being biased, but I do have experience with other products. I know MapBasic has its problems and not a very rich community behind using it.

I know that python does lack the power of providing easy to taylor interfaces to present to users, but as I mentioned, with VBA/.NET you can put together content-rich forms to give a custom interface for users to do what they need to do.

I will be interested to see what other platforms people can suggest, and to see what additional functionality they could provide that ESRI cannot.

  • With .NET you can script against MXDs (e.g. Loop through a folder of MXDs and open each MXD, do some stuff, then move onto next MXD
  • Manipulating default values in your spatial data is also achievable with ArcObjects.

Perhaps you could provide some more examples of what you expect to achieve and I could provide some pointers on how to achieve it. It might be that you are not aware of some of the capabilities of ESRI?

share|improve this answer
    
My programming skills are good, but in no way am I a match for a educated programmer (but I'm getting better every day). That goes for Python/VBA. As unfortunately VBA is going fast down the drain (thanks to Microsoft), I'd just say that from my experience, it is a shame, as it is simple on one hand and powerful on the other. But at the rate ESRI is releasing the updates (with the promise 10.1 won't support VBA), I don't see any justification to invest time in learning to develop using VBA. –  jonatr Aug 24 '10 at 8:09
    
And as for VB.net / ArcObjects. I forgot to refer to it as I feel (from the very little C# experience I have) that it is not meant for the average GIS analyst (which has some programming experience and can manage basic VBA/Python) but to experienced all-time-committed professional programmers. It seems to me that by making VB.net the preferred language, ESRI is giving up on a whole portion of small companies and analysts that used to customize small things for personal view. –  jonatr Aug 24 '10 at 8:09
    
The basic problem I have with VB.net is that I can't unfortunately dedicate the time to learn it from scratch ( It's a year long course) and alternatively I can't find any online references \ books as to how to work with ArcGIS and VB.net. As far as I know apart from a few codes out there, ESRI hasn't got any books on the matter (things like getting to know arcobjects but for c#). If you know better, please share. –  jonatr Aug 24 '10 at 8:10
    
As for 2 things I need, as an example: 1. Every time I open the the symobolgy and go to the Fill Color window to adjust the colors I need It opens in CMYK and I need to Change it to RGB. It's small and insignificant, but it's annoying and I'd rather make RGB default, but as far as I know, I can't. 2. A script that would allow me to open a MXD, maybe do a pre-defined zoom and then print it and export to file and close, allowing me to move on to another MXD (or to a whole list) – That would improve my life a whole lot. As VB.net is not in my blood, I haven't the faintest idea how to start. –  jonatr Aug 24 '10 at 8:11
1  
That's a good, separate question for gis.stackexchange.com: "1. Every time I open the the symobolgy and go to the Fill Color window to adjust the colors I need It opens in CMYK and I need to Change it to RGB." There may be a non-programmatic way to solve that issue. –  Jay Cummins Aug 24 '10 at 11:29
show 1 more comment

On the ArcGIS platform, if you are not doomed to manual work, then you are doomed to do some programming work (not bad for me since I enjoy that sort of thing)!

I don't know of a way in 9.3.x to override default values in the geodatabase without resorting to custom tools. This is what I do, especially if it's a set of repetitive edit operations.

In ArcGIS 10, the user can make Create Feature templates and set default values for each template initially, the templates are the symbols for a feature layer, but you can copy/remote/modify the create feature templates as needed). I haven't moved across to ArcGIS 10, but this is one of the features that our GIS editors are looking forward to.

I've never needed to remove a shortcut, so I'm not sure if you can do that in any version of ArcGIS. You can definitely add them (accelerators). I'm not sure if you can override them; if you can, it might be possible to override them with a dummy command that does nothing.

As Simon mentioned, you can use ArcObjects/.NET and operate on multiple MXDs. Although I do find that ArcObjects to be very picky when the MXD contains either broken data connections or any of the various service layers. In ArcGIS 10, you'll have arcpy.mapping in Python that helps with scripting work against MXDs/LYRs in Python. It is still a little buggy, but it might work for you depending on what you have in your MXD.

share|improve this answer
    
Hi. As I wrote a very long reply to Simon, I don't want to copy paste it (it's above), but I'd appreciate it if you would comment (if you have anything to comment). Thanks for the reply. –  jonatr Aug 24 '10 at 8:14
add comment

"...Fill Color window to adjust the colors I need It opens in CMYK and I need to Change it to RGB"

  1. Funny, I learnt how to do this last week.

    • open ArcMap --> add a layer --> go to colour pallete
    • Change the CYMK to RGB
    • Save the document to Normal.mxt under your doc & settings (under the ESRI folder)
    • Close and re-open ArcMap --> Will always be defaulted to RGB from now on.
  2. DS Map Book might be a solution for you? Or if your on v10, Data Driven Pages? Like I said, .NET/VBA scripting could do this, I am not too hot on Python to provide a Python solution

"getting to know arcobjects" but for c#

I agree with you here. I know ESRI are aware of this but not sure if they have something in the pipeline. This link may help as a starter, if you have a background in VBA. I would still argue that the G-T-K AO is still a valid read and the lessons learnt will still apply for .NET (and you can get through the book in a week @ 1-2hrs a day).

I was/am a big fan of VBA...

share|improve this answer
    
Thanks. I "brushed the dust" off MY GTKAO copy this morning and figured it's time to get back to it as I've improved since the last time I half-read it. Maybe afterwards I'll have more of a basis to dive in and tackle VB.Net . –  jonatr Aug 24 '10 at 12:45
    
Part of my problem is convincing the company computer department I need Visual Studio (GIS not so popular - they don't see us as developers and so I have to fight to get basic stuff). The DS MapBook is a another reason for fighting with computers, and that's why I've focused on Python and VBA until now - they are built in and I don't need to fight over them. Anyways, thanks for the tip over the CMYK/RGB matter, I'll try it out. –  jonatr Aug 24 '10 at 12:46
    
@jonatr - There is a free version of Visual Studio - I think it's called "Express". It will probably do everything you need. The professional version mostly just has more tools for professional developers. –  mickeyf Aug 24 '10 at 15:40
    
I agree, Visual Studio Express is usually substantial enough for getting what you want done. Its def a good place to start learning anyhow, and id also recommend this link: msdn.microsoft.com/en-au/beginner/default.aspx –  Simon Aug 24 '10 at 23:35
add comment

While I really like ArcGIS, I must admit that the ability to create watch files provided in workstation ArcInfo is sorely missing in desktop. Many are familiar with Excel's ability to record macros. It seems like ESRI could come up with similar capability - even after 10.0 when VBA is retired. For example, Neooffice has the ability to record python macros.

ArcEngine is highly customizable. It allows you to create small focused tools that do one thing and do it well. It includes template projects for Visual Studio, including the free Express edition(?), that can be used to build small light weight map viewer apps without any coding. Still, to get the full benefits of ArcEngine though, you would need to invest time in learning a .NET programming language.

share|improve this answer
1  
it's not as seamless or complete as a watch file, but the Results tab contains the history of your geoprocessing, which can be drag n dropped to Model Builder or exported to python snippets. I use this as a kind of improved metadata history for datasets. –  matt wilkie Aug 25 '10 at 5:38
    
also there is a history of gp tools as xml file here %AppData%\Roaming\ESRI\Desktop10.0\ArcToolbox\History, the xml file has some issues with it that will be addressed at 10.1. but it may be an interesting option for you. –  gotchula Nov 25 '10 at 20:40
add comment

This is the reality of making the toolset drive the database and not the other way around. You sound like you are in the position where you need a compreshensive database structure, one that you can derive reports, create updates, publish maps, etc. with or without the GIS part. Freeing the data from the tool will give you the ability to use an appropriate tool of your choosing. That is why we have Open Standards. From there you can use the application that best serves the purpose you have in mind. I just had this conversation this morning that if you happen to represent data in Columns it doesn't make it an Excel Spreadsheet.

Another responder discussed the limitation of Python, this is not so. There is probably more things you can do with python due to the extensive libraries then most any other language, and interfaces are not that hard. What is limiting is ESRI's implementation of Python in ArcGIS. Dont confuse the two.

share|improve this answer
add comment

You may want to check out MapWindow as a free alternative.... reads Shapefiles etc, but you'd need to know how to program in C#. But then you have total control over everything...

http://www.mapwindow.org/

share|improve this answer
    
The problem is getting hold of knowledge in C#, whic isn't trivial and very time-consuming. But thanks, I'll keep it in mind. –  jonatr Aug 30 '10 at 5:59
add comment

I think this is a very interesting question. The only problem with it I think is the tags. Most people loving the alternatives will miss this one since it is not tagged "open-source" or anything else that broaden the audience.

I am not experienced enough to give a give an answer from very many aspects, but... I did my first things in gis in Arcview 3.x writing in avenue. I really liked the speed and possibilities. Then I have never understood the joy in waiting for ArcGIS to start, searching for the right tool and then find the tool I need, needs ArcInfo.

So, my new love is PostGIS. It is very much more than a database for storing. The built in functionality makes it possible to do all processing and analyzing I have had use for so far. In most cases it is very much faster than Arc products.

In open source world you will not get one solution for everything but there is projects and software covering all your needs.

As I said I do the processing and analysing in PostGIS. I can store the sql-queries in text files to reuse (like any tool in other software but much more transparent). You can write functions in a lot of different languages like plpgsql (a special PostgreSQL language) Python, pLR, C and many more.

For desktop GIS I use mostly QGIS. What is not in the core of QGIS is in the extensions. If that is not enough you can write your own extension in Python and I think also C++)

If you are used to uDig that is of course an alternative.

If you want to do some web mapping you could try MapServer. Mapserver won the big benchmark on this years FOSS4G conference in serving WMS. Esri didn't want to participate this year. Last year they had registered to participate but never did. This year they didn't even register.

Geoserver is another alternative for serving web maps. It is very user friendly and serves a lot of different formats. It also handles WFS-T so you can edit map data and send the edits back to the server.

If you want a lightweight and very fast WFS-T server you should take a look at Tiny-OWS

Well, the list could be long of competent software together building a very powerful and of course customizeable suite.

I mean can it be more customizable. You have access to all the source code. And for the money you save not paying annual fees to Esri you can take some free and study programming or hire a programmer. You will get a lot of coding in those projects for the cost of a ArcServer license.

Cheers :-)

Nicklas

share|improve this answer
    
Thanks for the long answer - I added tags, and now am going to read your answer for the second time. –  jonatr Oct 18 '10 at 16:00
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.