Cerchi una piattaforma GIS altamente personalizzabile? [chiuso]


9

Sono stato educato in GIS usando ArcGIS (Desktop e Workstation) e ho studiato con esso (molto) brevi sbirciate su MapInfo e uDig. Durante quel periodo, ero soddisfatto del programma poiché utilizzavo database relativamente piccoli e non svolgevo molte attività ripetitive e ArcGIS ha molti strumenti interessanti per analizzare i dati scientifici.

Ormai da due anni, dopo la laurea, ho lavorato in un'azienda di dimensioni completamente diverse. Mi occupo di enormi database, svolgendo compiti relativamente "più semplici", ma sono anche composti da compiti ripetitivi (faccio una serie di semplici compiti una volta alla settimana all'intero database). Durante questo periodo, ho usato AutoCAD (poiché molti dei nostri dati sono disegnati usando AutoCAD) e sono cresciuto per apprezzarlo molto - Il più grande vantaggio è che usando il linguaggio di programmazione LISP e usando le variabili di sistema puoi controllare tutto molte impostazioni, sia che si tratti della personalizzazione del valore predefinito per uno strumento, dell'eliminazione dell'uso delle finestre di dialogo nel programma, sia delle opzioni per lo script dell'apertura e della manipolazione automatiche dei disegni.

Esistono piattaforme GIS là fuori, libere o meno, che hanno questo alto livello di personalizzazione o sono condannato a un lavoro manuale frustrato?

Preferisco le piattaforme con una buona interfaccia utente insieme alle opzioni di scripting, ma non è un must.


6
ci sono compiti in ArcGIS che sono eminentemente scriptabili e automatizzabili, altri che sicuramente non lo sono, e un intervallo nel mezzo. Dito per tutte le altre piattaforme. Se puoi fornire esempi del tipo di lavoro manuale che desideri evitare, potrebbero esserci alcune risposte utili specifiche.
matt wilkie,

@PolyGeo sei consapevole che questa è una domanda di 7 anni che desideri modificare?
Nicklas Avén,

@ NicklasAvén Sicuramente non sto chiedendo che venga modificato. Ho semplicemente votato per la chiusura in modo che non sia vista come una domanda ritenuta idonea a fungere da modello per una domanda simile da porre oggi. Per provare ad affrontare alcuni dei motivi per cui penso che sia il caso, ho apportato alcune modifiche su di me. Se tali vecchie domande debbano essere chiuse è discusso su meta.stackexchange.com/a/194117/215590
PolyGeo

Risposte:


5

Non ho abbastanza esperienza per dare una risposta da molti aspetti, ma ... Ho fatto le mie prime cose in GIS in ArcView 3.x scrivendo in Avenue. Mi è piaciuta molto la velocità e le possibilità. Quindi non ho mai capito la gioia nell'attendere l'avvio di ArcGIS, cercare lo strumento giusto e poi trovare lo strumento di cui ho bisogno, ha bisogno di ArcInfo.

Il mio nuovo amore è PostGIS. È molto più di un database per l'archiviazione. La funzionalità integrata consente di eseguire tutte le elaborazioni e le analisi che ho utilizzato finora. Nella maggior parte dei casi è molto più veloce dei prodotti Arc.

Nel mondo open source non otterrai una soluzione per tutto ma ci sono progetti e software che coprono tutte le tue esigenze.

Come ho già detto, eseguo l'elaborazione e l'analisi in PostGIS. Posso archiviare le query sql in file di testo da riutilizzare (come qualsiasi strumento in altri software ma molto più trasparente). Puoi scrivere funzioni in molti linguaggi diversi come plpgsql (uno speciale linguaggio PostgreSQL) Python, pLR, C e molti altri.

Per i GIS desktop utilizzo principalmente QGIS. Ciò che non è al centro di QGIS è nelle estensioni. Se ciò non bastasse, puoi scrivere la tua estensione in Python e penso anche in C ++)

Se sei abituato a uDig, questa è ovviamente un'alternativa.

Se vuoi fare qualche mappatura web puoi provare MapServer. Mapserver ha vinto il grande punto di riferimento sulla conferenza FOSS4G di quest'anno nel servizio WMS. Esri non voleva partecipare quest'anno. L'anno scorso si erano registrati per partecipare ma non l'hanno mai fatto. Quest'anno non si sono nemmeno registrati.

GeoServer è un'altra alternativa per servire le mappe web. È molto facile da usare e offre molti formati diversi. Gestisce anche WFS-T in modo da poter modificare i dati della mappa e inviare le modifiche al server.

Se desideri un server WFS-T leggero e molto veloce, dai un'occhiata a Tiny-OWS

Bene, l'elenco potrebbe essere lungo di software competente che crea una suite molto potente e ovviamente personalizzabile.

Voglio dire, può essere più personalizzabile. Hai accesso a tutto il codice sorgente. E per i soldi che risparmi non pagando le tasse annuali a Esri puoi prendere un po 'di tempo libero e studiare la programmazione o assumere un programmatore. Riceverai molta codifica in quei progetti al costo di una licenza ArcGIS Server.


12

Sono in disaccordo con te.

Penso che la guida / forum / blog / vids / etc di ArcGIS offra un'ottima prospettiva su ciò che è possibile ottenere con la gamma di prodotti ArcGIS.

Non sei limitato a Python per manipolare i tuoi dati spaziali. Puoi ancora usare VBA a 931 e 10 per accedere alla libreria ArcObjects, oppure potresti fare un passo ulteriore e usare .NET per fare ogni sorta di cose, e ancora una volta questo è ben documentato.

Penso anche che le scorciatoie per ArcGIS Desktop siano fantastiche e, se necessario, puoi creare le tue scorciatoie tramite la finestra di dialogo Personalizza.

Se non vuoi imparare a programmare, c'è anche ModelBuilder che è un ottimo modo per automatizzare compiti noiosi / flussi di lavoro comuni, in particolare con il geoprocessing .

Sono di parte, ma ho esperienza con altri prodotti.

So che Python non ha il potere di fornire interfacce facili da personalizzare per presentare agli utenti, ma come ho già detto, con VBA / .NET puoi mettere insieme moduli ricchi di contenuti per fornire un'interfaccia personalizzata agli utenti per fare ciò di cui hanno bisogno fare.

  • Con .NET è possibile eseguire lo scripting contro MXD (ad esempio, scorrere in una cartella di MXD e aprire ciascun MXD, eseguire alcune operazioni, quindi passare al MXD successivo
  • La manipolazione dei valori predefiniti nei dati spaziali è realizzabile anche con ArcObjects.

Le mie capacità di programmazione sono buone, ma in nessun modo sono una partita per un programmatore istruito (ma sto migliorando ogni giorno). Questo vale per Python / VBA. Come purtroppo VBA sta andando a gonfie vele (grazie a Microsoft), direi solo che dalla mia esperienza, è un peccato, poiché è semplice da un lato e potente dall'altro. Ma alla velocità con cui ESRI sta rilasciando gli aggiornamenti (con la promessa 10.1 non supporterà VBA), non vedo alcuna giustificazione per investire tempo nell'apprendimento dello sviluppo usando VBA.
Jonatr

E per quanto riguarda VB.net / ArcObjects. Ho dimenticato di riferirmi come sento (dalla pochissima esperienza C # che ho) che non è pensato per l'analista GIS medio (che ha una certa esperienza di programmazione e può gestire VBA / Python di base) ma sperimentare sempre - programmatori professionisti impegnati. Mi sembra che rendendo VB.net la lingua preferita, ESRI stia rinunciando a un'intera porzione di piccole aziende e analisti che usavano personalizzare le piccole cose per la visione personale.
Jonatr

Il problema di base che ho con VB.net è che purtroppo non posso dedicare il tempo ad impararlo da zero (è un corso lungo un anno) e in alternativa non riesco a trovare riferimenti / libri online su come lavorare con ArcGIS e VB.net. Per quanto ne so a parte alcuni codici là fuori, ESRI non ha alcun libro sull'argomento (cose come conoscere arcobjects ma per c #). Se conosci meglio, condividi.
Jonatr

2
Questa è una buona domanda separata per gis.stackexchange.com: "1. Ogni volta che apro la sinossi e vado nella finestra Colore riempimento per regolare i colori di cui ho bisogno Si apre in CMYK e devo cambiarlo in RGB." Potrebbe esserci un modo non programmatico per risolvere il problema.
Jay Cummins,

1
ri: la tua domanda n. 2 sopra menzionata. Questo problema mi sembra verosimile, ma non faccio molto con arcgis / python, quindi forse qualcun altro commenterà. Vorrei raccomandare di dividerlo in un'altra domanda per gis.stackexchange.com (renderà più facile per gli analisti GIS futuri e frustrati che hanno bisogno di eseguire il ciclo, lo zoom, l'esportazione per trovare la loro risposta).
Jay Cummins,

4

"... Riempi la finestra Colore per regolare i colori di cui ho bisogno Si apre in CMYK e devo cambiarlo in RGB"

  1. Divertente, ho imparato a farlo questa settimana scorsa.

    • apri ArcMap -> aggiungi un livello -> vai a pallete di colore
    • Cambia il CYMK in RGB
    • Salvare il documento in Normal.mxt sotto il documento e le impostazioni (sotto la cartella ESRI)
    • Chiudi e riapri ArcMap -> D'ora in poi sarà sempre impostato come predefinito su RGB.
  2. DS Map Book potrebbe essere una soluzione per te? O se sei su v10, D ata Driven Pages ? Come ho detto, lo scripting .NET / VBA potrebbe fare questo, non sono troppo caldo su Python per fornire una soluzione Python

"conoscere arcobjects" ma per c #

Concordo con te su questo. So che ESRI ne è consapevole ma non è sicuro che abbia qualcosa in cantiere. Questo link può essere d'aiuto se hai un background in VBA. Direi ancora che GTK AO è ancora una lettura valida e che le lezioni apprese si applicheranno ancora per .NET (e puoi leggere il libro in una settimana @ 1-2 ore al giorno).

Ero / sono un grande fan di VBA ...


Grazie. Stamattina ho "spazzato via la polvere" dalla mia copia di GTKAO e ho pensato che fosse ora di tornarci, dato che sono migliorato dall'ultima volta che l'ho letto a metà. Forse dopo avrò più di una base per tuffarmi e affrontare VB.Net.
Jonatr

Parte del mio problema è convincere il dipartimento informatico aziendale di cui ho bisogno di Visual Studio (GIS non così popolare - non ci vedono come sviluppatori e quindi devo lottare per ottenere cose di base). Il DS MapBook è un altro motivo per combattere con i computer, ed è per questo che mi sono concentrato su Python e VBA fino ad ora: sono integrati e non ho bisogno di combatterli. Comunque, grazie per il suggerimento sulla questione CMYK / RGB, lo proverò.
Jonatr

@jonatr - Esiste una versione gratuita di Visual Studio - Penso che si chiami "Express". Probabilmente farà tutto il necessario. La versione professionale ha principalmente più strumenti per sviluppatori professionisti.

Sono d'accordo, Visual Studio Express è in genere abbastanza sostanziale per ottenere ciò che vuoi fare. È sicuramente un buon posto per iniziare ad imparare comunque, e consiglio anche questo link: msdn.microsoft.com/en-au/beginner/default.aspx
Simon

3

Sulla piattaforma ArcGIS, se non sei condannato al lavoro manuale, sei condannato a fare un po 'di lavoro di programmazione (non male per me dato che mi piace quel genere di cose)!

Non conosco un modo in 9.3.x per sovrascrivere i valori predefiniti nel geodatabase senza ricorrere a strumenti personalizzati. Questo è quello che faccio, soprattutto se si tratta di una serie di operazioni di modifica ripetitive.

In ArcGIS 10, l'utente può creare modelli di funzionalità Crea e impostare inizialmente i valori predefiniti per ciascun modello , i modelli sono i simboli di un livello funzionalità, ma è possibile copiare / remoto / modificare i modelli di funzionalità di creazione in base alle esigenze ). Non sono passato ad ArcGIS 10, ma questa è una delle funzionalità che i nostri editor GIS non vedono l'ora.

Non ho mai avuto bisogno di rimuovere un collegamento, quindi non sono sicuro di poterlo fare in qualsiasi versione di ArcGIS. Puoi sicuramente aggiungerli (acceleratori). Non sono sicuro che puoi ignorarli; se puoi, potrebbe essere possibile sovrascriverli con un comando fittizio che non fa nulla.

Come accennato da Simon, puoi usare ArcObjects / .NET e operare su più MXD. Anche se trovo che ArcObjects sia molto esigente quando MXD contiene connessioni dati interrotte o uno dei vari livelli di servizio. In ArcGIS 10 avrai arcpy.mapping in Python che aiuta il lavoro di scripting contro MXD / LYR in Python. È ancora un po 'difettoso, ma potrebbe funzionare per te a seconda di ciò che hai nel tuo MXD.


Ciao. Dato che ho scritto una risposta molto lunga a Simon, non voglio copiarlo (è sopra), ma lo apprezzerei se tu volessi commentare (se hai qualcosa da commentare). Grazie per la risposta.
Jonatr

3

Anche se mi piace molto ArcGIS, devo ammettere che la possibilità di creare file di controllo forniti nella workstation ArcInfo è profondamente carente sul desktop. Molti hanno familiarità con la capacità di Excel di registrare macro. Sembra che ESRI potrebbe presentare capacità simili, anche dopo la 10.0 quando VBA viene ritirato. Ad esempio, Neooffice ha la capacità di registrare macro Python .

ArcGIS Engine è altamente personalizzabile. Ti consente di creare piccoli strumenti mirati che fanno una cosa e la fanno bene. Include progetti di modelli per Visual Studio, inclusa l'edizione Express gratuita (?), Che può essere utilizzata per creare piccole app per la visualizzazione di mappe leggere senza codifica. Tuttavia, per ottenere tutti i vantaggi di ArcGIS Engine, è necessario investire tempo nell'apprendimento di un linguaggio di programmazione .NET.


1
non è completo o completo come un file di controllo, ma la scheda Risultati contiene la cronologia del tuo geoprocessing, che può essere trascinato e rilasciato in Model Builder o esportato in frammenti di pitone. Lo uso come una sorta di cronologia dei metadati migliorata per i set di dati.
Matt Wilkie,

inoltre esiste una cronologia degli strumenti gp come file xml qui% AppData% \ Roaming \ ESRI \ Desktop10.0 \ ArcToolbox \ History, il file xml presenta alcuni problemi che verranno risolti in 10.1. ma potrebbe essere un'opzione interessante per te.
gotchula,

1

Questa è la realtà del fare in modo che il set di strumenti gestisca il database e non viceversa. Sembra che ti trovi nella posizione in cui hai bisogno di una struttura di database comprensiva, in cui puoi ricavare report, creare aggiornamenti, pubblicare mappe, ecc. Con o senza la parte GIS. Liberare i dati dallo strumento ti darà la possibilità di utilizzare uno strumento appropriato di tua scelta. Ecco perché abbiamo standard aperti. Da lì puoi utilizzare l'applicazione che serve meglio allo scopo che hai in mente. Ho appena avuto questa conversazione stamattina che se ti capita di rappresentare i dati nelle colonne non lo rende un foglio di calcolo Excel.

Un altro soccorritore ha discusso della limitazione di Python, non è così. Probabilmente ci sono più cose che puoi fare con Python a causa delle ampie librerie di quasi tutti gli altri linguaggi e le interfacce non sono così difficili. Ciò che limita è l'implementazione dell'ESRI di Python in ArcGIS. Non confondere i due.


1

Puoi provare MapWindow come alternativa gratuita .... legge Shapefile ecc., Ma dovresti sapere come programmare in C #. Ma poi hai il controllo totale su tutto ...

http://www.mapwindow.org/


Il problema è acquisire conoscenza in C #, che non è banale e richiede molto tempo. Ma grazie, lo terrò a mente.
Jonatr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.