Quais são seus maiores desafios ao desenvolver software GIS?
Está codificando? Está entendendo conceitos de cartografia / geografia / etc (como projeções)? Ou outras dificuldades?
Quais são seus maiores desafios ao desenvolver software GIS?
Está codificando? Está entendendo conceitos de cartografia / geografia / etc (como projeções)? Ou outras dificuldades?
Respostas:
Falando da minha experiência como desenvolvedor que entrou no cenário de desenvolvimento ESRI / GIS há quase 5 anos:
Como você pode ver, tenho uma perspectiva bastante negativa no cenário de desenvolvimento da ESRI. Para quem vem de uma geografia, tenho certeza de que as possibilidades são bastante emocionantes. Mas para alguém como eu que adora bancos de dados relacionais, programação orientada a objetos e ampla oportunidade de soluções criativas, o desenvolvimento de GIS com ESRI é muito restritivo e insatisfatório. É uma pena, porque a multidão da velha escola me diz que costumava ser um ambiente superior, antes do alinhamento com a Microsoft. Espero sinceramente que a comunidade de código aberto continue inovando.
Grandes quantidades de dados. Ser capaz de descobrir o caminho certo para extrair grandes quantidades de dados usando a tecnologia da web tem sido um desafio. Podemos ter muitos dados e desempenho ruim ou exibir muito menos dados, mas potencialmente transmitindo as informações erradas.
Eu não sou desenvolvedor de GIS; no entanto, sou um modelador GIS:
Desafios:
Coleta, agregação, desagregação, mesclagem e divisão de dados : eu obtenho dados de várias fontes para diferentes projetos; o maior problema geralmente é obter todos os dados para a mesma parcela / área geográfica. Normalmente, tenho que usar algumas das técnicas mencionadas acima em todos os conjuntos de dados, para ter uma amostra coerente do projeto. Isso aumenta a probabilidade de erro e dilui nossa precisão.
Eu não sou desenvolvedor; Repito que não sou desenvolvedor: quando você ama pessoas que falam sobre índices SOAP, SHAMPOO, REST, GIS-T, etc. isso significa muito para você. Para mim, principalmente, é um jargão. Normalmente, tenho uma grande curva de aprendizado ou uma subida íngreme para realizar algumas das coisas simples.
A diferença entre o software livre e o software proprietário: eu amo o QGIS e o postgis até a morte; literalmente eu os tenho instalados em todas as máquinas; no entanto, quando quero fazer uma análise baseada em transporte, tenho que recorrer ao TransCAD ou ao EMME2 / 3. Cada um custa cerca de US $ 15.000 com todos os sinos e assobios. Com toda a justiça, todos esses problemas poderiam ser resolvidos se houvesse um pacote networkx para arquivos shp.
Problema de várias disciplinas: eu sou versado em técnicas de modelagem de transporte; por mais ruim que seja a modelagem demográfica e, até onde sei, tenho que usar ferramentas sofisticadas de R para realizar meus dados. Portanto, o problema do SIG é que o SIG é um campo multidisciplinar difícil de sobreviver por conta própria.
Falta de ferramentas e software bem estabelecidos para passar do uso da terra das imagens ao uso da terra de vetores: prevejo um futuro em que uma ferramenta analisará a imagem de satélite GEOEYE e comparará os usos da terra nela com um banco de dados vetorial (como construído)
Às vezes, é mais rápido fazer as coisas no Excel / "seu programa de planilhas favoritas está aqui: Às vezes, quero fazer uma análise de trânsito, é muito mais rápido pegar os dados, colocá-los no Excel, fazer as fórmulas funcionarem e depois despejar os dados de volta. postgis como um arquivo CSV e regenere o mapa.Esta divisão, especialmente no mundo OpenSource, deve ser melhor tratada.
De qualquer forma, posso não ter respondido corretamente; Eu só queria ser versado no que diz respeito à programação GIS, para que eu possa me destacar na modelagem GIS
As coisas mais importantes, e geralmente as mais difíceis da minha experiência, são:
Penso que o ponto 1 será mais fácil nos países desenvolvidos, mas essa não é a minha experiência.
Para mim, o maior desafio é decidir quais ferramentas usar para um determinado projeto. Código aberto ou proprietário? Python ou .NET? Baseado na Web ou desktop? Respondo a essas perguntas de maneira diferente para projetos diferentes e tenho certeza de que as pessoas farão todas elas neste site. Muito disso se resume à preferência pessoal e à tentativa de adivinhar o que a ESRI e a Microsoft apoiarão no futuro.
Meu problema é sobre o cavalo e a água. Em muitos casos, desenvolvemos e / ou apresentamos soluções realmente boas para nossos clientes, mas não importa quão elegante seja a solução, é absolutamente inútil se ninguém tiver tempo para usar. Em alguns casos, conseguimos aliviá-lo, tornando o nosso trabalho baseado no usuário (pesquisa de problemas, discussão sobre soluções antes do desenvolvimento), mas em alguns casos isso ainda não é suficiente.
Acho que o desafio mais difícil é fazer com que a gerência entenda o GIS e alguns usuários também não o entendem. A percepção é que o GIS é sobre fazer um mapa; que um mapa é o único resultado de qualquer atividade GIS. Eu não posso te dizer o quão frustrante eu acho isso - o nível de ignorância lá fora é enorme, e é mantido pelos principais tomadores de decisão.
Eventualmente, porém - sendo alguns dos especialistas e programadores pioneiros em GIS -, eventualmente, tornar-se-emos gerenciamento e, finalmente, podemos finalmente concluir alguns projetos decentes de GIS!
A outra coisa difícil como programador de GIS - é preciso entender tantas tecnologias diferentes, Java, .Net, bancos de dados, software ESRI ou outros fornecedores, como MapInfo, redes, segurança, tecnologia da web etc. etc. Às vezes, é um trabalho quase impossível!
Lidando com pessoas com experiência em pesquisa que não entendem técnicas e metodologias profissionais de desenvolvimento de software, mas porque se ensinaram a codificar avenue / VB, pense que é tudo o que existe.
# 3 da resposta de Vinko :
projetar um aplicativo utilizável. É fácil e tentador colocar muitos sinos e assobios que apenas confundem os usuários.
Eu votaria na resposta inteira, mas pelo fato de que a usabilidade é apenas o terceiro item da lista dele e não acho que os dois primeiros sejam tão desafiadores.
A usabilidade é onde estão a maioria dos meus problemas e onde passo a maior parte do tempo de design / desenvolvimento, descobrindo como criar uma interface de usuário inteligente e eficaz, mas mantenha-a intuitiva para que os usuários não se confundam com ela, por exemplo:
Como ajustar o estilo (e escolher as camadas) de um mapa interativo para mostrar as informações relevantes e evitar a confusão que geralmente vem com a exibição de muitos dados (por exemplo, usando agregação automática de recursos de pontos); Eu sei que é isso que a cartografia tenta resolver há muito tempo, mas o problema só piora com mapas interativos / digitais
Como fazer o posicionamento automático da visualização do mapa com base na seleção de consulta / recurso do usuário
Destacando os recursos 'selecionados' - você mostra o destaque brevemente, destaca-o o tempo todo em que um recurso é selecionado, desmarca quando a tabela (ou lista) de seleção perde o foco ... Como destacar as duas consultas resultados de uma tabela e da linha selecionada dentro dessa tabela (sem ter muitos botões de alternância)
Mostrando informações adicionais em listas de camadas ou recursos, por exemplo, visibilidade / estilo aplicado / tipo de geometria de uma camada, status / classe do recurso ... Isso fica ainda mais complicado caso alguém tenha diferentes tipos de recursos exibidos na mesma lista (acho que é por isso Google e Bing Maps usam filtros bastante pesados dos resultados da pesquisa)
Edição eficiente: encaixe, fechamento de polígonos, adição / movimentação / exclusão de pontos, sem ter muitos botões na barra de ferramentas.
Como projetar (e implementar) uma interface de consulta amigável ao usuário para consultas de geometria e, ainda mais desafiador, uma interface para consultas, incluindo atributos e geometria; sem fazer com que o usuário digite algo parecido com SQL.
Como projetar algo como uma prancheta para recursos / geometrias para evitar a necessidade de 'escolher' continuamente um recurso do mapa para uso em consultas, edições ...
Meu sentimento é que o GIS é um campo especialmente desafiador no aspecto da usabilidade, porque:
A localização é o contexto universal e, geralmente, o mais natural para qualquer informação, portanto sempre há muita informação disponível para exibição
Tendo as informações exibidas em um mapa, é fácil tentar subestimar a importância das partes não GIS da interface do usuário
Tradicionalmente, a indústria negligenciava o aspecto da usabilidade do software GIS, e eles se safavam disso porque o mapeamento digital era visto como um comércio técnico com uma lenta curva de aprendizado e havia conceitos muito mais difíceis de aprender do que como usar a interface. Isso significa que qualquer pessoa que tente criar uma interface GIS para quem não é especialista deve inventar seus próprios princípios, que são condenados a serem confusos (um bom exemplo seria 'Meus Mapas' do Google ou 'Meus Locais' do Bing Maps)
Um dos maiores desafios para o desenvolvimento de GIS baseado na Web é como os dados são entregues e quanta eficiência posso obter ao entregá-los de uma certa maneira. O maior obstáculo é que é muito difícil escrever código para algo que requer que um humano ajuste. Muito raramente você vê técnicas de generalização para dados vetoriais usados em grandes escalas. Na maioria das vezes, é necessário ajustar os intervalos da escala para ativar e desativar as camadas.
Essa pergunta surgiu na minha pesquisa no Google por desafios no GIS, e estou com vontade de contribuir aqui.
Outro link que me pareceu relevante foi este artigo.
Resumindo o que é dito lá e minhas próprias opiniões, acho que os maiores desafios (em nenhuma ordem específica são):
Quando se trata de codificação, sinto que perco muito tempo em soluções alternativas. Para projeções, demorei alguns meses para entender os processos e a matemática, pois na minha opinião há pouco material publicado útil sobre o assunto. Os documentos EPSG e OGC sobre o assunto me ajudaram a entender isso depois de algumas leituras, mesmo que às vezes pareçam ser cópias um do outro. O maior problema que tenho como desenvolvedor independente é que não posso deixar de tropeçar em pessoas que precisam de trabalho especializado para desenvolvimento médico, industrial ou mesmo simples de aplicativos da Web, mesmo agora. Com a indústria de GIS, parece quase impossível encontrar uma maneira de entrar no mercado.
Eu sou um novato completo em tecnologias GIS, descobrindo as coisas à medida que vou. E como tenho fundos limitados, estou tentando evitar o uso de qualquer produto ESRI e fazer as coisas inteiramente com ferramentas de código aberto.
Dito isso, as coisas mais difíceis para mim até agora estão relacionadas à coleta de dados. Existem muitos artigos sobre manipulação e exibição de dados e muitas ferramentas para facilitar sua vida. Mas ainda estou andando no escuro quando se trata de coletar dados.
Não tenho ideia do que os profissionais fazem para encontrar e coletar dados. Algo me diz que há uma maneira mais fácil de obter dados do que data.gov e google.
Pode ser uma pena que você seja forçado a trabalhar com analistas de GIS que foram convertidos em desenvolvedores de software.
É fácil esperar que um desenvolvedor de software competente compreenda os conceitos de GIS e permita que eles acessem a API e geralmente resolvam as coisas sem muita ajuda. O mesmo não acontece com a contratação de um analista de GIS e a expectativa de que ele adquira o desenvolvimento de software.
Os resultados são embaraçosos , na melhor das hipóteses. Se você tem experiência em trabalhar com desenvolvedores ruins , imagine que é um código pior do que qualquer coisa que o pior programador tenha desenvolvido.
Existem algumas empresas para as quais você trabalha que não entendem isso.
o mundo do GIS está sendo expandido para o usuário comum, a menos que os primeiros anos em que o GIS fosse tratado apenas por engenheiros, architecs ou pela comunidade científica. No caso de o aplicativo GIS ser feito para o usuário comum, o desafio é misturar adequadamente as tecnologias nas quais o GIS é tratado como uma tecnologia mais (nesse caso, um desenvolvedor com um pouco de entendimento da tecnologia GIS é suficiente). No entanto, no caso em que o aplicativo é feito para a comunidade especializada, o desafio é mais complexo, pois além da junção de tecnologias é necessário pesquisar os algoritmos existentes para atender aos requisitos, caso contrário, ainda pior, teríamos que desenvolver esses algoritmos. Nesse caso, uma mistura de engenheiro e desenvolvedor é o trabalhador apropriado.