Mais

Como dividir atributos usando FME

Como dividir atributos usando FME


Estou tentando dividir um atributo em suas partes componentes com FME.

Ex:1707 WILLINGTON ST, PHILADELPHIA PA 19121

para dentro:1707 WILLINGTON ST,FILADÉLFIA,PA, e19121

Estou usando o AttributeSplitter com um delimitador de vírgula e entendi:1707 WILLINGTON STePHILADELPHIA PA 19121

Como obtenho estado - cidade - CEP em três campos separados?


No FME 2015.1 (usado aqui)

Use o SubStringExtractor

Se você precisar calcular o número de caracteres para o substringExtractor, use o StringSearcher, ele terá matched_characters, você pode usar isso como parâmetro para extrair vários endereços.


Supondo que uma vírgula irá dividir suficientemente o seu endereço em um campo e a Cidade, Estado, ZIP em outro campo, você poderia apenas usar outro divisor de atributo com um espaço.

Alternativamente, você pode usar um PythonCaller Transformer para fazer o trabalho por você. Aqui, Cidade / Estado / CEP são armazenados em um atributo chamado "Local".

O script Python que usei aqui é:

import fme import fmeobjects # Interface de função de modelo: def processFeature (feature): AttList = feature.getAttribute ('Location'). split (") City = AttList [0] State = AttList [1] Zip = AttList [2] feature. setAttribute ("City", City) feature.setAttribute ("State", State) feature.setAttribute ("Zip", Zip) pass

Os parâmetros do transformador são:

Observe que este é essencialmente o mesmo que um divisor de atributo. Mas, existem muitas maneiras de esfolar um gato.


Caso de uso de NullAttributeMapper: Traduzir código de malha para geometria

(FME 2014 Beta build 14223)

Existe um sistema de malha padrão para dividir toda a área do Japão em áreas retangulares uniformes no sistema de coordenadas geográficas.

tipo de malhalargura da malhaaltura da malha
Primário1 grau2/3 graus (40 minutos)
Secundário7,5 minutos (largura primária / 8)5 minutos (altura primária / 8)
Terciário45 segundos (largura secundária / 10)30 segundos (altura secundária / 10)

Cada malha possui um código único para identificar sua localização, o código é definido pela coordenada do canto inferior esquerdo (latitude, longitude) da malha.
tipo de malhaformato de códigodefinição de elementos de código
PrimárioAABBAA = latitude norte * 1,5, BB = longitude leste - 100
SecundárioAABB-CDC = índice de linha, D = índice de coluna na malha primária
TerciárioAABB-CD-EFE = índice de linha, F = índice de coluna na malha secundária
* O índice de linha / coluna é baseado em 0, começando no canto sudeste na malha de classificação superior.
* Hífens podem ser omitidos.

Por exemplo, a coordenada inferior esquerda da malha terciária "5438-23-45" é:
Lat. = 54 / 1,5 (graus) + 2 * 5 (min.) + 4 * 30 (seg.) = 36,2 (graus) = N 36d 12m 00s
Lon. = (38 + 100) (graus) + 3 * 7,5 (min.) + 5 * 45 (seg.) = 138,4375 (graus) = E 138d 26m 15s

O sistema de malha é um padrão nacional do Japão. É usado frequentemente em vários cenários de processamento de dados geográficos, muitas vezes traduzo códigos de malha em geometrias com o espaço de trabalho FME.
O exemplo de fluxo de trabalho a seguir cria um polígono retangular que representa uma área de malha com base no código de malha. Suponha que cada recurso de entrada tenha um código de malha primário, secundário ou terciário como seu atributo denominado "_mesh_code".

Marcador 1
Os três StringSearchers validam o formato do código de malha e o dividem em elementos de código - AA BB [C D [E F]], os elementos serão armazenados em um atributo de lista denominado "_mcode <>". Em seguida, o AttributeCreator calcula a largura e a altura da malha, dependendo do tipo de malha. O tipo de malha pode ser determinado com base no número de elementos de código, ou seja, uma malha primária tem 2, uma malha secundária tem 4 e uma malha terciária tem 6 elementos.


Marcador 2
O AttributeCreator calcula as coordenadas (latitude, longitude) do canto inferior esquerdo da malha com base nos elementos de código. Aqui, o número de elementos da lista do Marcador 1 é variável - 2, 4 ou 6. Portanto, usei o NullAttributeMapper de antemão para que o número de elementos fosse 6 e também os valores dos ex-elementos ausentes seriam 0 Assim, o AttributeCreator pode sempre calcular sem qualquer erro.

O fluxo de trabalho acima é um caso de uso do NullAttributeMapper. Acho que também pode ser usado em muitos casos além do manuseio & ltnull & gt.
E acho que muitos países têm padrões sobre dados geográficos. Espero que as informações sejam trocadas por vários canais.

====
02-01-2014: O número de StringSearchers (Marcador 1) pode ser reduzido a apenas um com esta expressão regular.
-----
^([0-9]<2>)([0-9]<2>)(-?([0-7])([0-7])(-?([0-9])([0-9]))?)?$
-----
Mas, nesse caso, como o número de elementos da lista será sempre 8, o tipo de malha não pode ser determinado com base nele. Outra abordagem será necessária em vez de ListElementCounter e AttributeCreator. E, as configurações de NullAttributeMapper (Indicador 2) devem ser:
- Mapa: Atributos selecionados
- Atributos selecionados: _mcode <3> _mcode <4> _mcode <6> _mcode <7>
- Se o valor do atributo for: vazio
- Mapear para: Novo valor
- Novo valor: 0
=====

=====
Sim, gosto de scripts :-)
-----
# Exemplo de Python (FME 2014 Beta build 14223)
# 2013-12-30 Atualizado
import fmeobjects, re

def createMeshPolygon (recurso):
mcode = feature.getAttribute ('_ mesh_code')
if mcode == Nenhum:
Retorna

mcode = str (mcode)
mtype, correspondido = Nenhum, Nenhum
matchers = [(1, re.compile ('^ ([0-9] <2>) ([0-9] <2>)

2 respostas 2

Eu cortaria drasticamente os galhos de um lado e, em seguida, com muito menos carga na divisão, colocaria uma ou algumas hastes-arruelas-porcas roscadas na divisão para manter o tronco unido. Eu aparafusei um olmo chinês dessa maneira. A árvore tinha apenas cerca de 25 cm de diâmetro em alguns anos a casca cresceu sobre as nozes.

Dada a localização e a gravidade da rachadura, parece que a substituição seria o caminho a percorrer. Como você provavelmente sabe, as raízes do salgueiro saem de seus próprios galhos e galhos com bastante facilidade e também brotam como resultado de poda pesada. Portanto, é muito fácil gerar suas próprias substituições a partir de estacas. No entanto, não é razoável esperar que uma boa árvore madura resulte simplesmente do corte no solo e do treinamento de um dos brotos voluntários, uma vez que ela estará constantemente fraca devido à conexão com o velho toco e crescer no que deve ser solo exausto .

Manter a árvore provavelmente envolveria uma combinação de poda pesada (para reduzir a resistência ao vento e o peso dos galhos) e cabos e hastes de madeira (para ajudar a proteger a árvore em condições de vento). Woodrods são simplesmente hastes roscadas longas que passam por galhos pesados ​​mais abaixo na árvore, uma porca e arruela colocada nas pontas e apertadas para evitar que a divisão piore no estiramento da haste. O cabeamento ocorre no alto da árvore para juntar os ramos principais, de modo que cada lado da divisão se apóie mutuamente.


O Serviço de Ambulância de Londres se beneficia do FME Custom Transformer

A melhor coisa sobre os transformadores personalizados FME é que eles são reutilizáveis. Na Dotted Eyes, temos orgulho de nossa experiência em FME e do fato de que nossos clientes se beneficiam dos transformadores que desenvolvemos. Um grande exemplo disso foi quando eu estava prestando consultoria para o London Ambulance Service.

Eu estive trabalhando em nosso produto SuperpOSe semanas antes e o estava atualizando para incluir o processamento dos dados do Ordnance Survey AddressBase. Isso foi através do uso de espaços de trabalho FME em oposição ao uso de FMEObjects. Como parte do protótipo inicial, eu precisava encontrar uma maneira de organizar os dados de maneira geográfica. A melhor maneira de fazer isso e se ajustar à funcionalidade existente do SuperpOSe era agrupar os dados usando o sistema de referência de grade do Ordnance Survey. Ou assim pensei.

Desenvolvi dois Custom Transformers. O primeiro forneceu a referência de grade do Ordnance Survey de um determinado ponto e o segundo gerou a geometria de uma grade do Ordnance Survey em um determinado zoom (ou seja, 100k, 50k, 10k etc.). Cada polígono tinha um atributo associado, que era a referência de grade do Ordnance Survey.

Vindo de um background de desenvolvimento e sempre querendo sujar as mãos com código, usar a funcionalidade de script no FME é como uma segunda natureza para mim. Quem sabe um dia eu terei um espaço de trabalho que seja apenas um único PythonCaller!

De qualquer forma, o que percebi mais tarde foi que agrupar os dados dessa maneira para os dados de endereço não era tão benéfico para o usuário final. O fato de que esses transformadores personalizados não foram usados ​​em nosso produto SuperpOSe não foi um problema para mim. Eu sabia que em algum momento eles seriam úteis e que meu tempo e esforço não foram desperdiçados. Eu não estava errado.

Apenas algumas semanas depois de desenvolvê-los, eu estava ministrando algum treinamento e consultoria FME para o Serviço de Ambulâncias de Londres. Eles precisavam de transformadores que ajudassem no processamento de seu mapeamento de fundo em um de seus sistemas. Mais especificamente, eles precisavam desses transformadores para adicionar nomes de edifícios ao conjunto de dados Ordnance Survey Vector Map Local Raster. Os transformadores que desenvolvi para SuperpOSe acabaram sendo a solução perfeita.

Meu próximo passo é enviar esses transformadores personalizados para a Safe para que todos na comunidade FME possam se beneficiar deles, portanto, fique ligado!

Escrito por Steve Davies, Engenheiro de Software Sênior e Profissional Certificado FME da Dotted Eyes


Mdhntd

Se o Shillelagh cantrip for aplicado a um taco com dados de dano fora do padrão, qual será o dado de dano resultante?

Para ficar tão rico que não precise mais de dinheiro

Associação avaliada vs. não avaliada

Um arquivo ISO pode danificar & # 8212ou infectar & # 8212a máquina em que está sendo queimado?

Quando, exatamente, o Rogue Scout pode usar sua habilidade de Escaramuçador?

Como os castelos medievais foram construídos em pântanos ou pântanos sem drená-los?

Quando um problema é adicionado ao anterior

O contrato de aluguel diz que animais de estimação não são permitidos. Possíveis repercussões se trouxer o animal de estimação?

O projeto do Boeing 2707 tinha falhas?

Como podemos saber qual parte da energia cinética dá origem à temperatura?

Qual é o barulho de um helicóptero quando os rotores ainda não estão se movendo?

Remoção de & # 12390 em romances japoneses

Quantas linhas de código o TeX original contém?

Como os proponentes da Sola Scriptura abordam o ministério daqueles apóstolos que não são autores de nenhuma parte das Escrituras?

Esse tipo de sacrifício impreciso poderia ser combatido?

Viabilidade arquitetônica de uma torre de pedra circular em camadas

Artigos no arXiv resolvendo o mesmo problema ao mesmo tempo

Discutindo o trabalho com o supervisor em um jantar convidado com sua família

Limite de tempo do elemento menor imediato excedido

HJM em dimensões infinitas

"Opusculum hoc, quamdiu vixero, doctioribus emendandum offero."?

Por que o Reino Unido está tão ansioso para remover o "obstáculo" quando sua liderança parece pensar que nenhuma fronteira será necessária na Irlanda do Norte?

& # 8220Driver não carregado Driver não carregado & # 8221 ao tentar se conectar ao banco de dados MSSQL no QGIS 3.8 em MacOS

Adicionando um WMS - a conexão expirou? Por que os dados importados do FME para o SQL Server não foram encontrados pelo QGIS?

Ao tentar criar uma nova conexão MSSQL, recebo um erro dizendo: Erro ao abrir a conexão: Driver não carregado Driver não carregado.

Eu tentei o QGIS 3.8.0 e o QGIS 3.8.1 pré-compilado mais recente no MacOS Mojave. Não tenho certeza de como executar o QGIS em um modo que possa fornecer uma mensagem de erro melhor.

Alguém tem ideias sobre o que mudar para fazer isso funcionar?

Ao tentar criar uma nova conexão MSSQL, recebo um erro dizendo: Erro ao abrir a conexão: Driver não carregado Driver não carregado.

Eu tentei o QGIS 3.8.0 e o QGIS 3.8.1 pré-compilado mais recente no MacOS Mojave. Não tenho certeza de como executar o QGIS em um modo que possa fornecer uma mensagem de erro melhor.

Alguém tem ideias sobre o que mudar para fazer isso funcionar?

Ao tentar criar uma nova conexão MSSQL, recebo um erro dizendo: Erro ao abrir a conexão: Driver não carregado Driver não carregado.

Eu tentei o QGIS 3.8.0 e o QGIS 3.8.1 pré-compilado mais recente no MacOS Mojave. Não tenho certeza de como executar o QGIS em um modo que possa fornecer uma mensagem de erro melhor.

Alguém tem ideias sobre o que mudar para fazer isso funcionar?

Ao tentar criar uma nova conexão MSSQL, recebo um erro dizendo: Erro ao abrir a conexão: Driver não carregado Driver não carregado.

Eu tentei o QGIS 3.8.0 e o QGIS 3.8.1 pré-compilado mais recente no MacOS Mojave. Não tenho certeza de como executar o QGIS em um modo que possa fornecer uma mensagem de erro melhor.


Como dividir atributos usando FME - Sistemas de Informação Geográfica

Estou tentando juntar 2 arquivos espaciais que têm algumas, mas não todas as atribuições iguais.

Um deles (property_template.tab) não tem dados, mas tem o esquema que desejo. O outro (cadastre_bpoly.tab) contém as informações espaciais e apenas alguns atributos necessários.

No QGIS, um vetor de mesclagem simples fornece o resultado que eu preciso, onde se um atributo corresponder a ele é preenchido, mas se não for deixado.

No FME, tentei o FeatureMerger onde o solicitante / fornecedor se juntou como $ (SourceDataset_MAPINFO_5), mas não deu um resultado.

Também tentei ListBasedFeatureMerger.

TUDO que preciso fazer é o seguinte:


  1. Obtenha a saída anterior da tabela de propriedades e use-a como um modelo (sem dados)
  2. Preencha-o com o cadastro e faça com que ele preencha automaticamente quaisquer atributos que sejam iguais.
  3. Una por atributos com uma folha xls que possui um campo-chave, mas é capaz de construir o campo-chave usando colunas existentes.

Eu entendo que a # 3 é realmente uma questão separada, mas eu a incluí, pois pode ajudar na escolha dos transformadores corretos.

Para os pontos 1 e 2 acima, a mesclagem não deve tentar fazer nenhum tipo de junção por atributo, mas não me permite deixar o campo Join Attributes Requester / Supplier em branco.

Com base na sugestão de Mark Ireland

Acho - se bem entendi - que faria uma tradução simples para as partes 1 e 2. Portanto, em um espaço de trabalho vazio, tente seguir estes passos.


  1. Escolha Leitores> Adicionar Leitor no menu.
  2. Defina a guia MapInfo como o formato do leitor e selecione o conjunto de dados do Cadastro.
  3. Clique em OK para adicionar o leitor.
  4. Escolha Writers> Add Writer no menu.

Agora você tem um espaço de trabalho que gravará os dados do Cadastro em um novo conjunto de dados MapInfo, usando o conjunto de dados Propriedade como uma forma de modelo.

Se existirem atributos nos dados de Cadastro que também aparecem no esquema de Propriedades, eles serão gravados. Tudo o mais será ignorado.

Existem algumas maneiras de fazer isso, mas acho que minha solução é a melhor que você pode encontrar. Você poderia usar uma tradução dinâmica, mas não vejo nenhum ponto nisso (a menos que você vá executá-la várias vezes e o conjunto de dados da propriedade altere o esquema a cada vez). O método FeatureMerger / Joiner mencionado em outras respostas não é tão simples porque não define o esquema de saída.

O único obstáculo possível é que o conjunto de dados Property está vazio. O FME pode não gostar disso. Sem recursos, ele pode pensar que não há esquema e você obtém um erro ao adicionar o gravador. A solução simples seria adicionar um único registro a essa tabela. Não estamos lendo esse conjunto de dados, apenas usando a estrutura, então não importa se a tabela está cheia ou vazia. Esses dados não serão incluídos, apenas recursos dos dados do Cadastro.

Como você disse, o requisito nº 3 é algo totalmente diferente. Mas, como todo mundo aqui mencionou, você pode usar um transformador FeatureJoiner (ou FeatureMerger) para fazer isso. Na verdade, visto que os dados são do Excel e você realmente não precisa ler todos eles na área de trabalho, eu usaria o transformador DatabaseJoiner. Portanto, crie sua chave como um novo atributo (StringConcatenator ou AttributeManager> caixa de diálogo Editor de texto) e use-a no DatabaseJoiner para se conectar à planilha do Excel.


Vamos começar simplificando a pergunta. O evento

é a união dos eventos disjuntos (determinado por $ T_1 = pm 1 $)

$ w_1 + sum_^ n T_i w_i geq 0, -w_1 + sum_^ n T_i w_i geq 0. $

Após manipulação algébrica simples, e usando o fato de que cada $ T_i $ tem a mesma distribuição de $ -T_i $ (é "simétrico"), esses eventos são ambos equivalentes aos da forma

para $ w = pm w_1 $. Explorando novamente as simetrias de $ T_i $ (para tornar todos os $ w_i $ não negativos) e reordenando-os, isso pode ser escrito

onde $ | w_2 | ge | w_3 | ge cdots ge | w_n | $.

Precisamos calcular as chances de dois desses eventos e desejar fazê-lo de forma eficiente. Assumirei que a chance precisa ser calculada com alta precisão, de modo que as aproximações seriam inaceitáveis. (Para muitas configurações de $ | w_i | $, as aproximações normais para as distribuições podem funcionar bem. Uma análise mais aprofundada pode ser realizada usando a função característica $ phi $ de $ sum_^ n T_i | w_i | $, que por definição é $ phi (t) = prod_^ n left ( frac < exp (-j | w_i | t)> <2> + frac < exp (j | w_i | t)> <2> right) = prod_^ n cos (w_it) $ $ j = sqrt <-1> $.)

A partir de agora, reduza $ n $ por $ 1 $, comece a indexação com $ i = 1 $ e assuma que todos os $ w_i $ são positivos. (Obviamente, qualquer valor zero pode ser ignorado.) Seja $ 1 le k lt n $. Considere a distribuição de $ X = sum_^ n T_i w_i $ condicional aos primeiros $ k $ valores de $ T_i $:

$ Pr (X le w , | , T_1, ldots, T_k) = < Pr> _ <(T_, ldots, T_n)> left ( sum_^ n T_i w_i le w - sum_^ k T_i w_i = w_0 right). $

Desde $ | T_i | le 1 $, a soma do lado esquerdo é limitada:

$ -u_ = - (w_ + cdots + w_n) le sum_^ n T_i w_i le w_ + cdots + w_n = u_.$

Vamos $ u_$ estar do lado direito: é uma soma cumulativa de $ w_i $, acumulada a partir dos valores mais à direita (mais baixos). Obviamente agora, se $ u_ le w_0 $ então $ X le w $ é certo e se $ -u_ gt w_0 $, então $ X le w $ tem probabilidade zero. Isso leva a um simples ramificar e ligar algoritmo, porque não precisamos pesquisar mais para avaliar a distribuição. Considerando que a enumeração exaustiva teria que examinar $ 2 ^$ casos possíveis, determinamos sua contribuição para a distribuição em $ O (1) $ vez.

Não há muita esperança de que essa melhoria leve a um pior caso algoritmo que é melhor do que $ O (2 ^ n) $ em desempenho (embora eu ache que pode ser reduzido para $ O (2 ^) $ que - embora muito melhor - ainda não é polinomial). No entanto, a melhoria é boa o suficiente para valer a pena considerá-la, especialmente para valores moderados de $ n $, onde a enumeração exaustiva começa a se tornar impraticável (algo acima de $ 20 $ e certamente acima de $ 40 $). Vamos, portanto, fazer o benchmarking do algoritmo. Quão eficiente é?

O pior caso é quando a maioria dos $ w_i $ tem tamanhos comparáveis, pois então a heurística branch-and-bound raramente realiza alguma coisa. Felizmente, essa é exatamente a situação em que o Teorema do Limite Central pode fornecer excelentes aproximações! Portanto, talvez seja ainda mais interessante explorar situações em que os tamanhos de $ w_i $ estão altamente espalhados.

Para este fim, criei quatro conjuntos de dados com $ n = 15 $ a partir de quatro distribuições com formas radicalmente diferentes: Beta $ (1 / 5,1 / 5) $ (nitidamente bimodal), Exponencial (modo alto perto de zero), Uniforme e Gama $ (20) $ (quase normal, com valores próximos de $ 20 $). Cada conjunto de dados foi normalizado para um máximo de $ 1 $. Usando o método branch-and-bound, $ Pr (X le w) $ foi calculado para $ 19 $ valores de $ w $ variando de $ até $ 2 sqrt$. (Os valores negativos de $ w $ não precisam ser mostrados porque as distribuições de $ X $ são quase simétricas.) A figura exibe os resultados, representando graficamente as probabilidades (a função de distribuição empírica cumulativa de $ X $) na linha superior e o eficiências (em escalas log-lineares) na linha inferior. A "eficiência" é a razão entre o número de configurações necessárias para enumeração exaustiva ($ 2 ^ n $) e o número de configurações consideradas pelo algoritmo branch-and-bound.

Para a distribuição Beta, cuja forte bimodalidade limita essencialmente os cálculos à metade superior dos dados, as eficiências são maiores. Como esperado, eles são menores para a distribuição Gama, cujos valores são todos comparáveis. No entanto, mesmo neste caso difícil, as eficiências excedem $ 3 $.

As menores eficiências geralmente são de $ w = 0 $. Eventualmente, a eficiência aumentará à medida que $ | w | $ aumenta. Coletivamente, esses resultados são fortes evidências de que a abordagem descrita aqui não só é computacionalmente mais eficiente do que a enumeração exaustiva, como tende a ser Muito de mais eficiente.

A implementação do algoritmo é direta e simples. Segue o código R. Inclui uma seção que testa o algoritmo (comparando sua saída com uma enumeração exaustiva) e outra seção para reproduzir a figura.


Discussão

Este estudo aproveita as informações do HISDAC-US para examinar o desenvolvimento espacial urbano nos Estados Unidos desde 1910. Independentemente de onde as MSAs estão situadas ou quando começaram a crescer, encontramos forte congruência em seu desenvolvimento espacial relacionado ao tamanho. Ou seja, descobrimos que MSAs em desenvolvimento mais recente seguiram caminhos semelhantes para MSAs em desenvolvimento inicial, especialmente em termos de seus atributos de tamanho e densidade. Embora a urbanização (ou seja, não encolhendo) as MSAs sigam trajetórias de desenvolvimento mais elaboradas em termos de estrutura, também encontramos evidências de fortes efeitos de agrupamento ao longo dessas dimensões. Essa descoberta aponta para um conjunto de formas urbanas cada vez mais complexas, que vêm surgindo nos Estados Unidos. De uma perspectiva ampla, encontramos altos graus de continuidade no desenvolvimento espacial de AEM em urbanização em relação às características relacionadas ao tamanho, que são bastante robustas ao momento e à localização do desenvolvimento.

Embora a urbanização de MSAs sigam trajetórias semelhantes relacionadas ao tamanho, há algumas exceções notáveis ​​a essas tendências abrangentes. Em primeiro lugar, os MSAs parecem estar cada vez mais estratificados, mas menos extremamente distribuídos com base no seu tamanho. Este padrão é evidente a partir de testes de normalidade transversais (ou seja, aumentando as estatísticas de teste de normalidade Shapiro-Wilk para variáveis ​​de tamanho ao longo do tempo, Fig. Suplementar 3) e de nossa análise de cluster, o que indica que, embora as diferenças no tamanho da cidade tenham diminuído entre os MSAs ao longo do vez, eles são classificados em um número crescente de clusters ou "tipos". Além disso, os atributos relacionados à forma dos MSAs estão crescendo cada vez mais independentemente de seus atributos relacionados ao tamanho. Em segundo lugar, embora descobrimos que, independentemente da localização ou do momento do desenvolvimento, a maioria dos atributos espaciais urbanos estão mudando em direções semelhantes, existem alguns desvios notáveis ​​nas regiões dos Estados Unidos. Mais notavelmente, as MSAs nas divisões de censo do interior dos Estados Unidos seguem formas urbanas bastante diferentes das MSAs costeiras. Se esta é ou não uma transição temporária ou indicativa de uma diferenciação regional mais recente e mais duradoura, resta ver.

O que nossas descobertas nos dizem sobre a existência de trajetórias de desenvolvimento sistemático nas cidades e em seus arredores? Geralmente, nossos resultados sugerem que a urbanização de MSAs nos Estados Unidos parecem seguir trajetórias de desenvolvimento semelhantes, independentemente de terem se desenvolvido recentemente ou mais para trás no tempo com relação aos atributos de tamanho. No entanto, nossas análises multidimensionais revelam que essas trajetórias podem ser altamente complexas. Embora a fonte dessa heterogeneidade local esteja além do escopo deste artigo, os dados e abordagens apresentados aqui fornecem uma base sólida para examinar esses padrões, embora sujeitos às questões associadas aos dados retrospectivos.

Os aspectos mais detalhados de nossas descobertas também destacam o valor potencial da aplicação da análise científica espacial às questões da história urbana. Notavelmente, as principais transições espaciais urbanas, como a suburbanização 43 pós-Segunda Guerra Mundial, e a crescente formação de sistemas urbanos “megapolitanos” 48 interconectados são evidentes em nossos resultados. A Fig. 1, por exemplo, mostra que aproximadamente a partir do final da década de 1950, o tamanho médio das habitações e o número total de propriedades aumentaram acentuadamente, enquanto as medidas de compactação espacial e circularidade começaram a diminuir rapidamente. Esses padrões refletem a expansão das áreas metropolitanas além de suas cidades centrais e nos subúrbios emergentes da época. O surgimento de "áreas megapolitan" nos EUA é, por exemplo, refletido no surgimento do cluster MSA que é caracterizado por altos níveis de contiguidade (ver, por exemplo, Fig. 5g). Desenvolvimentos históricos como esses, que têm sido e serão o foco dos esforços contínuos de pesquisa 31,49, fundamentam muitos dos padrões mais amplos que observamos aqui. Embora não tentemos lidar com essas questões neste estudo, as abordagens que articulamos fornecem vastas oportunidades para uma melhor compreensão das complexas interações sociais, políticas e econômicas que trouxeram mudanças espaciais históricas generalizadas.

Os limites da cidade mudam naturalmente com o tempo. Em nossa análise, contamos com limites fixos e retrospectivos de áreas estatísticas metropolitanas conforme existiam em 2010. Embora sofram de um certo grau de arbitrariedade (cf. Fig. 1), eles permitem a análise dentro de unidades espaciais temporalmente consistentes. No entanto, as séries temporais de certas medidas baseadas em estrutura ou densidade seriam diferentes ao usar limites adaptativos temporalmente e, portanto, trabalhos futuros poderiam examinar como nossa imagem de mudança espacial urbana seria diferente se, em vez disso, usássemos uma pegada ou definição urbana em mudança. Além disso, o trabalho futuro deve incluir a análise de cidades menores e vilas definidas como Áreas Estatísticas Micropolitanas (ou seja, cidades com menos de 50.000 habitantes) e a expansão deste trabalho para uma gama mais completa de cidades grandes e pequenas nos EUA, e também deve foco na quantificação do viés de sobrevivência nos dados ZTRAX subjacentes no nível do edifício, por exemplo, integrando fontes de dados históricos auxiliares.

Além disso, os próximos trabalhos devem incluir características espaciais e temporais adicionais (por exemplo, medidas diferenciais, como expansão e densificação de áreas urbanas 31), medidas de uso do solo intra ou periurbano e vegetação, redes de estradas urbanas e dados do censo (por exemplo, população, migração e outras variáveis ​​socioeconômicas). Essas abordagens de integração de dados em combinação com métodos avançados de aprendizado de máquina podem permitir a modelagem preditiva de desenvolvimento urbano e mudanças populacionais. A integração de dados populacionais e dados de sensoriamento remoto também permitirá uma quantificação do viés introduzido em tais análises pela falta de informações sobre demolições de edifícios e retração urbana. O fenômeno da redução afeta certas regiões dos Estados Unidos e está normalmente associado ao declínio da população e à conversão de terras construídas em menos desenvolvidas. Essa análise contribuirá para uma compreensão mais ampla das forças motrizes e das interações entre os processos humanos e ambientais e a dinâmica urbana. A análise futura pode gerar conhecimento valioso como base para modelos simuladores complexos que prevêem e projetam o desenvolvimento futuro de áreas urbanas, população e as interações dentro dos sistemas socioambientais. Além disso, os dados espaciais de longo prazo usados ​​neste documento potencialmente permitirão testar as leis de dimensionamento urbano em longo prazo e avaliar o impacto de conceitos analíticos transversais versus longitudinais sobre os resultados da mudança urbana e análises de dimensionamento.

Este trabalho fornece dados e projetos para uma investigação ampla e de longo prazo sobre a diferenciação espacial em ambientes urbanos. Este estudo estabelece uma base analítica para medir processos conhecidos de urbanização, como expansão, preenchimento e densificação, em longos períodos de tempo e em escalas significativas para fins analíticos e interpretativos, ambas limitações de longa data nos estudos urbanos. Além disso, nossa estrutura analítica e os dados subjacentes fornecem informações valiosas para planejadores municipais e regionais, permitindo a identificação e previsão de trajetórias de desenvolvimento finas e grosseiras. O conhecimento dessas trajetórias pode ser particularmente valioso para lidar com questões relacionadas a mudanças ambientais, transporte e desigualdade 49. Demonstramos como derivados de dados inovadores podem ser usados ​​para avaliar quantitativamente diferentes características urbanas e suas mudanças na granularidade espacial e temporal fina. Nossa análise demonstra o valor da aplicação de métodos analíticos baseados em dados para a exploração de grandes dados espaço-temporais de assentamento na geografia urbana, o que pode aprimorar nossa compreensão do assentamento histórico de cidades nos Estados Unidos e em outros lugares.


Procurando referências de livros sobre a implementação da solução GIS Entreprise.

Olhei para o Wiki, mas não vi as informações que procurava. Eu gostaria de obter um livro (ou e-book) sobre os princípios-chave e as melhores práticas para implementar uma solução GIS Enterprise. Os comentários da Amazon me deixaram para baixo. Não tenho certeza do que comprar. Você tem alguma recomendação?

Seria difícil encontrar um livro para soluções de código aberto. Além disso, uma solução corporativa pode percorrer milhares de caminhos diferentes, dependendo de como precisa ser implantada. Existem muitas variáveis ​​para conter tudo. Você faz roteamento de rede? Você tem TBs de fotos aéreas? Você precisa servir os recursos do geoJson? Ou blocos WMS? Quais são os requisitos de rede. Orçamentos, etc.

Se você deseja estar no mundo da ESRI, vá diretamente ao site deles para obter recursos que seria o melhor lugar.

Embora você provavelmente queira pesquisar bancos de dados espaciais e conceitos de programação, como endpoints REST e acesso à API com algum tipo de folheto de front end ou visualizador de caixa de mapa hospedado em um servidor web / db etc.

Aplicativos GIS como QGIS e FME podem se conectar diretamente a um banco de dados espacial como PostGIS e visualizar / manipular dados espaciais.

O tutorial macmiller está um pouco desatualizado, mas tem conceitos relacionáveis ​​que se aplicam hoje.


Algumas reflexões sobre os testes em GIS: parte 1

Surpreende-me que, ao pesquisar testes GIS na Internet, você não obtenha muitos resultados relevantes. O teste é uma parte essencial de qualquer sistema de TI ou indústria de fluxo de trabalho GIS, no entanto, não parece estar levando os testes a sério. É bastante comum que muitas organizações tenham planos de teste mal definidos ou não tenham nenhum plano. Isso é algo que pode ser parcialmente devido ao histórico que as pessoas que desempenham o papel de administradores de GIS podem ter. Essa pessoa pode ser um geógrafo autodidata que desempenha funções de analista de GIS, não há nada de errado com isso, mas sem uma compreensão adequada das operações de TI, há uma grande chance de que apenas alguns testes ad hoc rápidos para integridade de dados e fumaça testes são feitos para os dados de produção e fluxos de trabalho. No entanto, sem ter e seguir um plano de teste rigoroso GIS, uma organização se coloca em um grande risco: fluxo de trabalho GIS incorreto ou conjuntos de dados inconsistentes podem levar à interpretação incorreta dos resultados da análise GIS, e também podem ter impacto financeiro caso os erros de dados levem a direcionar perdas de lucro.

Nesta série de postagens, gostaria de estruturar algumas das melhores práticas de teste de GIS que coletei ao longo dos anos. Eu acredito fortemente que o desenvolvimento de uma metodologia sólida para testes de GIS é essencial para o sucesso de qualquer organização na indústria de GIS. Há uma seção dedicada a isso nas Estratégias de Design de Sistema da Esri.

Para ser mais específico, gostaria de dividir os testes GIS em vários tópicos bastante independentes. Vamos começar classificando esses tópicos.

Teste de software GIS

This kind of testing implies that we want to verify that the GIS software operates correctly and operations that can be run execute successfully producing expected and correct results.

Regardless of the GIS software origin – whether it’s a commercial product, an open-source program, or an in-house built system – we want to make sure that with the new release, established workflows will continue to run normally and previously resolved issues will not occur. This implies that no upgrades of the software should occur without verifying that the established workflows will continue to work. You might think that the software vendor should take care of that and verify that the program behavior won’t change with the new release. Indeed, there is no need to test all of the features and functions within a software however, running through all your workflows in a staging environment before upgrading your production machines is a must. A certain function or a tool that is a part of the larger process might be deprecated or modified which might break your workflow.

This may sound like regression testing when you verify that the previously existed issues that was resolved in earlier release do not appear again in the coming release. But it is also about making sure that the things that have worked in the previous will continue to work in a new release and the workflows might be executed successfully. Of course, if your workflow success was dependent on the bug fix or a patch in a previous version, it might be a good idea to investigate whether this issue cannot be reproduced again in the new release.

The software or scripting framework that is used for running the tests, doesn’t really matter as long as you are able to run them in an automated manner and schedule the run.

GIS data testing

GIS datasets are arguably one the most valuable assets an organization might have, hence it is crucially important that the spatial data are accurate, topologically correct, and consistent.

There is an endless number of business rules that an organization might enforce on its GIS data. Some of them may be unique to the organization, but most others will be relevant for any organization that uses GIS for data collection, management, or analysis.

Those rules that are generic are often related to the geographical rules enforced by the reality and common sense. That is, point features in the Schools feature class may never be located geographically within a lake feature from the Lakes feature class number of lanes for a road cannot be negative, and speed restrictions on the roads perhaps should not exceed a certain value. It is up to you and your organization to define those business rules that your GIS data must follow.

If you are an ArcGIS user, there is a great extension called Data Reviewer. This will let you define those kinds of rules in a very convenient way it’s a great tool for QA/QC which I have used over last years. Take a look at an instructor-led Esri course on QA/QC for GIS data. If this is not something you have access to, you might consider building own tests based on the geoprocessing framework within ArcGIS taking advantage of ModelBuilder or Python. Keep in mind that it is possible to publish ArcGIS for Server services based on Data Reviewer batch jobs where each job represents a group of checks. You will be able to run your scripts in a scheduled manner (say every midnight) and there is even a Data Reviewer widget for the Web App Builder which can make data verification performed by GIS operators very streamlined and intuitive. Esri Data Reviewer team is doing an excellent job this is a great piece of software which provides a rich interface for automating your GIS data QA/QC workflows. There is also a free Esri training seminar on using Data Reviewer extension, worth taking a look.