Vous recherchez une plateforme SIG hautement personnalisable? [fermé]

9

J'ai été formé aux SIG à l'aide d'ArcGIS (Desktop et Workstation) et j'ai fait des recherches avec avec des aperçus (très) courts sur MapInfo et uDig. Pendant ce temps, j'étais satisfait du programme car j'utilisais des bases de données relativement petites et je ne faisais pas beaucoup de tâches répétitives et ArcGIS a beaucoup d'outils sympas pour analyser les données scientifiques.

Depuis deux ans maintenant, depuis l'obtention de mon diplôme, je travaille dans une entreprise d'une toute autre ampleur. Je gère d'énormes bases de données, faisant des tâches relativement "plus simples", mais en plus elles sont composées de tâches répétitives (je fais une série de tâches simples une fois par semaine pour toute la base de données). Pendant ce temps, j'ai beaucoup utilisé AutoCAD (car beaucoup de nos données sont dessinées à l'aide d'AutoCAD) et j'ai grandi pour l'apprécier beaucoup - Le plus grand avantage est qu'en utilisant le langage de programmation LISP et en utilisant des variables système, vous pouvez contrôler l'ensemble de nombreux paramètres - qu'il s'agisse de personnaliser la valeur par défaut d'un outil, d'éliminer l'utilisation de boîtes de dialogue dans le programme ou d'options de script pour l'ouverture et la manipulation automatiques des dessins.

Existe-t-il des plateformes SIG, gratuites ou non, qui ont ce niveau élevé de personnalisation, ou suis-je condamné à un travail manuel frustré?

Je préfère les plates-formes avec une bonne interface utilisateur ainsi que les options de script, mais ce n'est pas un must.

jonatr
la source
6
il y a des tâches dans ArcGIS qui sont éminemment scriptables et automatisables, d'autres qui ne le sont certainement pas, et une gamme entre les deux. Dito pour toutes les autres plateformes. Si vous pouvez donner des exemples des types de travaux manuels que vous souhaitez éviter, il pourrait y avoir des réponses utiles spécifiques.
matt wilkie
@PolyGeo vous savez que c'est une question de 7 ans que vous demandez à modifier?
Nicklas Avén
@ NicklasAvén Je ne demande certainement pas qu'il soit édité. J'ai simplement voté pour sa fermeture afin qu'elle ne soit pas considérée comme une question jugée appropriée pour servir de modèle à une question similaire à poser aujourd'hui. Pour essayer de répondre à certaines des raisons pour lesquelles je pense que c'est le cas, j'ai moi-même effectué quelques modifications. La question de savoir si ces anciennes questions doivent être fermées est discutée sur meta.stackexchange.com/a/194117/215590
PolyGeo

Réponses:

5

Je n'ai pas assez d'expérience pour donner une réponse sous de nombreux aspects, mais ... J'ai fait mes premières choses dans le SIG dans ArcView 3.x en écrivant dans Avenue. J'ai vraiment aimé la vitesse et les possibilités. Ensuite, je n'ai jamais compris la joie d'attendre le démarrage d'ArcGIS, de rechercher le bon outil et de trouver l'outil dont j'ai besoin, a besoin d'ArcInfo.

Mon nouvel amour est PostGIS. C'est bien plus qu'une base de données pour le stockage. La fonctionnalité intégrée permet de faire tous les traitements et analyses que j'ai utilisés jusqu'à présent. Dans la plupart des cas, il est beaucoup plus rapide que les produits Arc.

Dans le monde open source, vous n'aurez pas une seule solution pour tout, mais il existe des projets et des logiciels couvrant tous vos besoins.

Comme je l'ai dit, je fais le traitement et l'analyse dans PostGIS. Je peux stocker les requêtes SQL dans des fichiers texte à réutiliser (comme n'importe quel outil dans d'autres logiciels mais beaucoup plus transparent). Vous pouvez écrire des fonctions dans de nombreux langages différents comme plpgsql (un langage spécial PostgreSQL) Python, pLR, C et bien d'autres.

Pour les SIG de bureau, j'utilise principalement QGIS. Ce qui n'est pas au cœur de QGIS se trouve dans les extensions. Si cela ne suffit pas, vous pouvez écrire votre propre extension en Python et je pense aussi en C ++)

Si vous êtes habitué à uDig, c'est bien sûr une alternative.

Si vous souhaitez effectuer une cartographie Web, vous pouvez essayer MapServer. Mapserver a remporté la grande référence de la conférence FOSS4G de cette année au service de WMS. Esri ne voulait pas participer cette année. L'année dernière, ils s'étaient inscrits pour participer mais ne l'ont jamais fait. Cette année, ils ne se sont même pas inscrits.

GeoServer est une autre alternative pour servir des cartes Web. Il est très convivial et sert à de nombreux formats différents. Il gère également WFS-T afin que vous puissiez modifier les données cartographiques et renvoyer les modifications au serveur.

Si vous voulez un serveur WFS-T léger et très rapide, vous devriez jeter un œil à Tiny-OWS

Eh bien, la liste pourrait être longue de logiciels compétents construisant ensemble une suite très puissante et bien sûr personnalisable.

Je veux dire, peut-il être plus personnalisable. Vous avez accès à tout le code source. Et pour l'argent que vous économisez en ne payant pas de frais annuels à Esri, vous pouvez suivre une programmation gratuite et étudier ou engager un programmeur. Vous obtiendrez beaucoup de codage dans ces projets pour le coût d'une licence ArcGIS Server.

Nicklas Avén
la source
12

Je ne suis pas d'accord avec vous.

Je pense que l' aide / les forums / les blogs / les vidéos / etc d' ArcGIS donnent une excellente perspective de ce que vous pouvez réaliser avec la gamme de produits ArcGIS.

Vous n'êtes pas limité à Python pour manipuler vos données spatiales. Vous pouvez toujours utiliser VBA à 931 et 10 pour accéder à la bibliothèque ArcObjects, ou vous pouvez aller plus loin et utiliser .NET pour faire toutes sortes de choses, et là encore, cela est bien documenté.

Je pense également que les raccourcis pour ArcGIS Desktop sont excellents, et vous pouvez créer vos propres raccourcis via la boîte de dialogue Personnaliser si nécessaire.

Si vous ne voulez pas apprendre à coder, il existe également ModelBuilder qui est un excellent moyen d'automatiser des tâches fastidieuses / des workflows courants, en particulier avec le géotraitement .

Je suis partial, mais j'ai de l'expérience avec d'autres produits.

Je sais que Python n'a pas le pouvoir de fournir des interfaces faciles à adapter aux utilisateurs, mais comme je l'ai mentionné, avec VBA / .NET, vous pouvez créer des formulaires riches en contenu pour donner aux utilisateurs une interface personnalisée pour faire ce dont ils ont besoin pour faire.

  • Avec .NET, vous pouvez créer des scripts pour les MXD (par exemple, parcourir un dossier de MXD et ouvrir chaque MXD, faire des choses, puis passer au MXD suivant).
  • La manipulation des valeurs par défaut dans vos données spatiales est également possible avec ArcObjects.
Simon
la source
Mes compétences en programmation sont bonnes, mais en aucun cas je ne suis à la hauteur d'un programmeur éduqué (mais je m'améliore de jour en jour). Cela vaut pour Python / VBA. Comme malheureusement, VBA va vite dans les égouts (grâce à Microsoft), je dirais simplement que d'après mon expérience, c'est dommage, car il est simple d'une part et puissant de l'autre. Mais au rythme où ESRI publie les mises à jour (avec la promesse que 10.1 ne prendra pas en charge VBA), je ne vois aucune justification pour investir du temps dans l'apprentissage du développement à l'aide de VBA.
jonatr
Et comme pour VB.net / ArcObjects. J'ai oublié de m'en référer car je sens (à partir de la très petite expérience C # que j'ai) qu'il n'est pas destiné à l'analyste SIG moyen (qui a une certaine expérience de programmation et peut gérer VBA / Python de base) mais à expérimenté en tout temps - programmeurs professionnels engagés. Il me semble qu'en faisant de VB.net le langage préféré, ESRI abandonne toute une partie des petites entreprises et des analystes qui avaient l'habitude de personnaliser les petites choses à des fins personnelles.
jonatr
Le problème de base que j'ai avec VB.net est que je ne peux malheureusement pas consacrer du temps à l'apprendre à partir de zéro (c'est un cours d'un an) et que je ne peux pas trouver de références / livres en ligne sur la façon de travailler avec ArcGIS. et VB.net. Pour autant que je sache, à part quelques codes, ESRI n'a pas de livres sur le sujet (des choses comme apprendre à connaître les arcobjects mais pour c #). Si vous savez mieux, veuillez partager.
jonatr
2
C'est une bonne question distincte pour gis.stackexchange.com: "1. Chaque fois que j'ouvre la symobolgie et que je vais dans la fenêtre Couleur de remplissage pour ajuster les couleurs dont j'ai besoin, elle s'ouvre en CMJN et je dois la changer en RVB." Il peut y avoir un moyen non programmatique de résoudre ce problème.
Jay Cummins
1
re: votre question n ° 2 mentionnée ci-dessus. Ce problème me semble pythonable, mais je ne fais pas grand chose avec arcgis / python alors peut-être que quelqu'un d'autre commentera. Je recommanderais de décomposer cela en une autre question pour gis.stackexchange.com (cela facilitera la tâche aux futurs analystes SIG frustrés qui ont besoin de boucler, de zoomer, d'exporter pour trouver leur réponse).
Jay Cummins
4

"... Fenêtre de couleur de remplissage pour ajuster les couleurs dont j'ai besoin Il s'ouvre en CMJN et je dois le changer en RVB"

  1. C'est drôle, j'ai appris à faire ça la semaine dernière.

    • ouvrir ArcMap -> ajouter une couche -> aller à la palette de couleurs
    • Changer le CYMK en RVB
    • Enregistrez le document dans Normal.mxt sous votre doc & paramètres (sous le dossier ESRI)
    • Fermez et rouvrez ArcMap -> sera toujours par défaut RVB à partir de maintenant.
  2. DS Map Book pourrait être une solution pour vous? Ou si vous êtes sur v10, D ata Driven Pages ? Comme je l'ai dit, les scripts .NET / VBA pourraient le faire, je ne suis pas trop à l'aise sur Python pour fournir une solution Python

"apprendre à connaître les arcobjects" mais pour c #

Je suis d'accord avec vous dans ce cas. Je sais que ESRI en est conscient, mais je ne sais pas s'ils ont quelque chose dans le pipeline. Ce lien peut vous aider en tant que démarreur, si vous avez une expérience en VBA. Je dirais toujours que le GTK AO est toujours une lecture valide et que les leçons apprises s'appliqueront toujours à .NET (et vous pouvez parcourir le livre en une semaine @ 1-2 heures par jour).

J'étais / suis un grand fan de VBA ...

Simon
la source
Merci. J'ai "balayé la poussière" de ma copie de GTKAO ce matin et j'ai pensé qu'il était temps d'y revenir car je me suis amélioré depuis la dernière fois que je l'ai lu à moitié. Peut-être qu'après, j'aurai plus d'une base pour plonger et attaquer VB.Net.
jonatr
Une partie de mon problème est de convaincre le département informatique de l'entreprise que j'ai besoin de Visual Studio (les SIG ne sont pas si populaires - ils ne nous voient pas en tant que développeurs et je dois donc me battre pour obtenir des informations de base). Le DS MapBook est une autre raison de lutter contre les ordinateurs, et c'est pourquoi je me suis concentré sur Python et VBA jusqu'à présent - ils sont intégrés et je n'ai pas besoin de me battre pour eux. Quoi qu'il en soit, merci pour l'astuce sur la question CMJN / RVB, je vais l'essayer.
jonatr
@jonatr - Il existe une version gratuite de Visual Studio - je pense qu'elle s'appelle "Express". Il fera probablement tout ce dont vous avez besoin. La version professionnelle n'a généralement plus d'outils pour les développeurs professionnels.
Je suis d'accord, Visual Studio Express est généralement suffisamment important pour obtenir ce que vous voulez faire. C'est un bon endroit pour commencer à apprendre de toute façon, et je
Simon
3

Sur la plateforme ArcGIS, si vous n'êtes pas voué au travail manuel, alors vous êtes voué à faire un travail de programmation (pas mal pour moi car j'aime ce genre de chose)!

Je ne connais pas de moyen dans 9.3.x pour remplacer les valeurs par défaut dans la géodatabase sans avoir recours à des outils personnalisés. C'est ce que je fais, surtout s'il s'agit d'un ensemble d'opérations d'édition répétitives.

Dans ArcGIS 10, l'utilisateur peut créer des modèles d'entités et définir des valeurs par défaut pour chaque modèle au départ, les modèles sont les symboles d'une couche d'entités, mais vous pouvez copier / éloigner / modifier les modèles d'entités créés si nécessaire ). Je ne suis pas passé à ArcGIS 10, mais c'est l'une des fonctionnalités que nos éditeurs SIG attendent avec impatience.

Je n'ai jamais eu besoin de supprimer un raccourci, donc je ne sais pas si vous pouvez le faire dans n'importe quelle version d'ArcGIS. Vous pouvez certainement les ajouter (accélérateurs). Je ne sais pas si vous pouvez les remplacer; si vous le pouvez, il peut être possible de les remplacer par une commande factice qui ne fait rien.

Comme Simon l'a mentionné, vous pouvez utiliser ArcObjects / .NET et opérer sur plusieurs MXD. Bien que je trouve que ArcObjects soit très pointilleux lorsque le MXD contient des connexions de données rompues ou l'une des différentes couches de service. Dans ArcGIS 10, vous aurez arcpy.mapping en Python qui vous aidera à travailler avec les scripts contre les MXD / LYR en Python. C'est toujours un petit buggy, mais cela pourrait fonctionner pour vous en fonction de ce que vous avez dans votre MXD.

Jay Cummins
la source
Salut. Comme j'ai écrit une très longue réponse à Simon, je ne veux pas copier-coller (c'est ci-dessus), mais j'apprécierais que vous commentiez (si vous avez quelque chose à commenter). Merci pour la réponse.
jonatr
3

Bien que j'aime vraiment ArcGIS, je dois admettre que la possibilité de créer des fichiers de surveillance fournis dans la station de travail ArcInfo fait cruellement défaut dans le bureau. Beaucoup connaissent la capacité d'Excel à enregistrer des macros. Il semble qu'ESRI pourrait proposer des capacités similaires - même après 10.0 lorsque VBA est retiré. Par exemple, Neooffice a la possibilité d'enregistrer des macros python .

ArcGIS Engine est hautement personnalisable. Il vous permet de créer de petits outils ciblés qui font une chose et le font bien. Il comprend des projets de modèles pour Visual Studio, y compris l'édition Express gratuite (?), Qui peuvent être utilisés pour créer de petites applications de visualisation de cartes légères sans aucun codage. Néanmoins, pour tirer pleinement parti d'ArcGIS Engine, vous devez investir du temps dans l'apprentissage d'un langage de programmation .NET.

Kirk Kuykendall
la source
1
il n'est pas aussi transparent ou complet qu'un fichier de surveillance, mais l' onglet Résultats contient l'historique de votre géotraitement, qui peut être glissé-déposé vers Model Builder ou exporté vers des extraits de code python. Je l'utilise comme une sorte d'historique de métadonnées amélioré pour les jeux de données.
matt wilkie
il y a également un historique des outils gp en tant que fichier xml ici% AppData% \ Roaming \ ESRI \ Desktop10.0 \ ArcToolbox \ History, le fichier xml a quelques problèmes avec lesquels il sera résolu à 10.1. mais cela peut être une option intéressante pour vous.
gotchula
1

C'est la réalité de faire en sorte que le jeu d'outils pilote la base de données et non l'inverse. Vous semblez être dans la position où vous avez besoin d'une structure de base de données complète, une que vous pouvez dériver des rapports, créer des mises à jour, publier des cartes, etc. avec ou sans la partie SIG. Libérer les données de l'outil vous donnera la possibilité d'utiliser l'outil approprié de votre choix. C'est pourquoi nous avons des normes ouvertes. De là, vous pouvez utiliser l'application qui répond le mieux à l'objectif que vous avez en tête. Je viens d'avoir cette conversation ce matin que si vous représentez des données dans des colonnes, cela n'en fait pas une feuille de calcul Excel.

Un autre intervenant a discuté de la limitation de Python, ce n'est pas le cas. Il y a probablement plus de choses que vous pouvez faire avec python en raison des bibliothèques étendues que la plupart des autres langages, et les interfaces ne sont pas si difficiles. Ce qui limite, c'est l'implémentation d'ESRI de Python dans ArcGIS. Ne confondez pas les deux.

westyvw
la source
1

Vous voudrez peut-être consulter MapWindow comme une alternative gratuite .... lit les fichiers de forme, etc., mais vous devez savoir comment programmer en C #. Mais alors vous avez un contrôle total sur tout ...

http://www.mapwindow.org/

timemirror
la source
Le problème est de se procurer des connaissances en C #, ce qui n'est pas trivial et prend beaucoup de temps. Mais merci, je vais m'en souvenir.
jonatr