Eu tenho dois shapefiles representando grades com valores simbolizados com cores graduadas, mostrados abaixo:
Você pode ver que os dois shapefiles abrangem intervalos de dados semelhantes, mas atribuem cores ligeiramente diferentes aos intervalos nesses dados. Gostaria de simbolizar os intervalos em cada um dos dois arquivos de forma, usando as mesmas cores para os mesmos intervalos, permitindo uma comparação mais fácil entre os arquivos e permitindo que uma única legenda seja usada.
No entanto, quando tento classificar os intervalos com um intervalo manual, o ArcGIS força o que deve ser o intervalo superior a incluir também o valor mínimo do conjunto de dados. Você pode ver isso no intervalo "-81,64 - 10,00" do quadro de dados esquerdo, abaixo. Isso força toda a camada a ser simbolizada com esta cor. Basicamente, o ArcGIS exige que o valor mínimo no conjunto de dados seja usado como um valor em um dos intervalos.
Existe uma maneira de contornar esse recurso?
Respostas:
Definitivamente, é uma grande dor quando o ArcMap tenta ser útil , mesmo quando você realmente não quer que seja.
Uma solução alternativa que encontrei é criar um novo conjunto de dados temporário e adicionar alguns pontos com os valores mínimo e máximo que você sabe que precisará na saída - apenas certifique-se de cobrir todo o intervalo.
Crie sua simbologia com base nesse conjunto de dados falso e salve essa simbologia em um arquivo de camada :
... importe a simbologia do arquivo * .lyr para o seu conjunto de dados real:
fonte
@ChrisW disse:
Isso me fez pensar e, na verdade, encontrei uma maneira de definir o intervalo de classificação abaixo do valor mínimo. Meu problema original foi criado com base no fato de que o menor intervalo de classificação era necessário para conter o valor mínimo nos dados.
No entanto, nenhuma restrição é colocada nos outros intervalos de classificação utilizados. Portanto, é possível forçar dois (ou mais) intervalos de classificação a ficar abaixo do valor mínimo nos dados. Um deles representará o intervalo de classificação mínimo preferido, enquanto o outro funcionará como um intervalo fictício para conter o valor mínimo.
Aqui está o ponto de partida que eu usei para a classificação. Cada uma das camadas nos quatro quadros de dados foi classificada usando um intervalo definido de 10 pés, independentemente dos intervalos de dados das outras camadas.
O intervalo máximo de classificação em qualquer um dos quatro quadros de dados é "0,01 a 10,00" e o intervalo mínimo de classificação é "-110,62 a -110,00" (que idealmente se tornará "-119,00 a -110,00"). Como estou tentando manter intervalos de 10 pés, isso se traduz em um total de 13 intervalos.
Estou usando o quadro de dados superior esquerdo como fonte da minha legenda genérica. Começo abrindo as Propriedades da camada e indo para Classificar. Como quero que 13 intervalos fiquem visíveis, preciso selecionar 14 intervalos para ter um intervalo fictício disponível. Eu faço isso selecionando Manual como método e criando 14 classes.
Com os intervalos configurados em seu estado atual (com os maiores valores na parte superior), quaisquer alterações no valor inserido no intervalo não terão efeito em nada além do intervalo na parte inferior da lista. O @ChrisW apontou que isso não é um bug, mas uma característica de como o ArcGIS atribui valores de quebra. Aqui está a janela Propriedades da camada depois de selecionar o método Manual, mas antes de fazer alterações nos intervalos:
Para resolver esse problema, inverto temporariamente a classificação da camada. Nesse ponto, os intervalos mais baixos estão no topo, enquanto os intervalos mais altos estão na parte inferior.
Agora, se eu rolar até o final da lista de intervalos (onde o intervalo mais alto é exibido) e começar a definir os intervalos adequados de baixo para cima, o ArcGIS lembrará dos intervalos que eu defino:
Nesta imagem, eu defini o valor superior em 5 dos 14 intervalos, começando com o maior valor (10,00) e trabalhando para baixo.
Quando chego ao topo da lista e edito meu 14º intervalo, seu valor mínimo ainda será definido como o valor mínimo na camada, pois ele não possui outro intervalo abaixo para obter um valor:
Isso não importa, porém, já que é o intervalo fictício que eu mencionei antes. Nesse ponto, inverto a classificação da camada mais uma vez, para que os intervalos mais altos estejam novamente no topo. A imagem abaixo mostra a legenda atualizada para o quadro de dados superior esquerdo, que agora reflete os intervalos adequados para todos os quatro quadros de dados, incluindo o 14º intervalo fictício:
A próxima etapa é propagar essas alterações até o restante dos quadros de dados. Alguns problemas são aparentes, no entanto, quando tento importar a simbologia para outros quadros de dados:
Como o @ChrisW apontou, isso se deve à minha decisão de começar com uma camada que não possui o valor mínimo absoluto em todos os quadros de dados. Parece que o quadro de dados não exibirá nenhum intervalo abaixo dos que existem no quadro de dados original.
Se você está começando com uma camada como a que fiz, a melhor solução que encontrei para isso é repetir as etapas discutidas acima para cada um dos quatro quadros de dados; definindo manualmente 14 classes, revertendo a classificação das classes, redefinindo a parte superior de cada intervalo e revertendo a classificação para colocar os intervalos mais altos no topo.
A solução mais simples, no entanto, é iniciar o processo de classificação com a camada que possui o menor valor. A opção Importar simbologia pode então ser usada corretamente para os outros quadros de dados.
Finalmente, posso excluir três das legendas e ocultar o intervalo fictício na legenda restante ou convertê-lo em gráficos e excluir o intervalo fictício.
fonte
Eu me deparei com esse mesmo problema, eu acho ... Se eu entendi direito, você tinha dois (ou mais) conjuntos de dados e precisa fazer com que os intervalos de escala do conjunto de dados correspondam para que as comparações possam ser feitas.
Eu resolvi isso por:
Desculpe se isso é um pouco mais simplificado ou até mesmo uma prática incorreta / ruim. Sou usuário do GIS Stack Exchange há muito tempo e pensei que era hora de começar a contribuir, e este é o meu primeiro post!
fonte
save class breaks
FEITO
fonte
Embora a classificação use intervalos semelhantes, os dados não compartilham um intervalo. Acho que a solução aqui é resolvê-lo nas atribuições de legenda e cor, e não na classificação real.
Comece com o resultado inferior esquerdo e converta essa legenda em um gráfico. Edite o texto para obter os intervalos desejados. Percebo que todas as suas outras imagens têm um intervalo de 10 unidades, mas esta está fazendo 20 e se sobrepõe. Por exemplo, três das imagens têm -49,99 a -40,00, mas a parte inferior esquerda tem -49,99 a -60,00, e a próxima classe é -59,99 a -70,00. As imagens também têm faixas opostas - ou seja, três têm valor mais baixo à esquerda, enquanto que a esquerda inferior é mais baixa à direita (o que me parece muito mais natural, aumentando números, se não valores, da esquerda para a direita). Talvez esses problemas precisem ser resolvidos primeiro para economizar tempo, em vez de apenas uma edição manual de texto.
Depois de ter uma legenda com intervalos e uma rampa de cores que você gosta, você pode voltar para as duas primeiras camadas (que já estão classificadas corretamente) e editar manualmente o patch de cores de cada intervalo para corresponder à cor que você escolheu para o intervalo na legenda . Como as duas camadas não exibem suas próprias lendas, não importa que em uma delas o intervalo seja realmente -89,99 a -80,00 e a outra seja -81,64 a -80,00, porque ambas terão a mesma cor .
Observe, no entanto, que isso implicará que os dois conjuntos de dados tenham o mesmo intervalo, o que eles não têm. De fato, parece que haverá duas amostras de cores usadas apenas em um mapa cada (a mais alta e a mais baixa). Você pode colocar uma nota em cada mapa que forneça seu intervalo de dados absoluto. Eu também usaria 'to' em vez de '-' entre os intervalos, porque com os valores negativos é meio confuso ler.
Solução alternativa:
Tanto quanto eu sei e posso encontrar evidências, você deve ter uma classe que comece no seu valor mínimo. Você pode adicionar manualmente classes (mesmo as vazias) acima ou abaixo do intervalo de dados, mas uma classe deve iniciar no valor mínimo.
Portanto, configure sua simbologia usando a varredura que contém o valor mais baixo / mínimo de todas as rasters. Obtenha estes simbolizados. Você pode editar o rótulo da classe para dizer o que quiser. Portanto, se o seu valor mais baixo for 0,4, você ainda poderá alterar o rótulo para dizer 0.
Depois de concluir e configurar a rampa de cores desejada, salve um arquivo lyr da simbologia. Você deve poder abrir seus outros rasters e aplicar a mesma simbologia. Como todos os outros controladores terão valores mais altos, eles devem ser classificados corretamente e apenas o valor mínimo em si aumentará (ou talvez essa classe seja descartada se nada cair dentro dela). Novamente, você pode alterar o rótulo da classe para o piso da classe, em vez do valor real, se isso não continuar com a simbologia.
fonte
Uma solução mais fácil, mas também mais suja, que funcionou para mim. Não se esqueça de criar um backup dos seus dados originais.
fonte
Acredito que se trata de legenda de recurso, mas não de rasters. Se isso é sobre rasters, desconsidere minha sugestão. Eu costumo usar estes:
Espero que ajude, FP
fonte
Eu fiz a seguinte solução alternativa. Criei minhas próprias quebras de classe em um documento XML e o carreguei na simbologia classificada de ambas as camadas.
Carregar quebras de classe XML: mesmo menu em que você salvou o modelo (consulte 1), clique em "carregar quebras de classe"
fonte
Uma maneira alternativa é combinar todos os valores de cada camada em uma camada. Dessa forma, você terá os valores mínimo e máximo na camada.
A ilustração:
1.combine os valores de todas as camadas em uma coluna (vamos chamá-lo de All_Vals) em uma planilha do Excel
ao lado da coluna All_Vals, adicione duas novas colunas nomeadas como X e Y e preencha-as com zeros.
No arcmap, adicione a planilha do Excel como uma tabela e use-a para criar uma classe de recurso de ponto usando o comando / ferramenta display xy data, depois exporte a camada de eventos para um shapefile (o nome será NB_Point) e adicione-a ao quadro de dados.
4) Converta o arquivo de forma NB_Point para o tipo de classe de recurso de suas camadas, por exemplo, se o tipo de camada de recurso for polígono, use a ferramenta de buffer para criar classe de recurso de polígono a partir do shapefile NB_Point (vamos chamá-lo de NB_polygon).
Espero que isso ajude e desculpe por qualquer erro de ortografia.
fonte