Mais

O que significam os valores na coluna clazz (osm2po)?

O que significam os valores na coluna clazz (osm2po)?


Eu tenho uma determinada tabela em postgreSQL com dados OSM que é usada para fins de roteamento em Java com PGRouting. Existem duas colunas que não entendo. Eles pertencem ao osm2po. Eles são rotulados com "bandeiras" e "clazz". Eu sei, as bandeiras descrevem o tipo de estrada. Quer dizer, se é dirigível de carro, bicicleta, ... O problema agora é que eu não entendo o significado dos valores na coluna clazz. Só sei que também descrevem o tipo de estrada. Alguém pode explicar o que os valores como 12, 15, 31,… significam? Existe uma documentação onde o significado dos valores é escrito?


O arquivo osm2po.config, que pode ser obtido na aba de downloads da página osm2po, contém uma tabela com quatro colunas, definidas como:

1) pedido simultâneo

2) classe (1-127)

3) velocidade padrão em kmh

4) tipo de transporte permitido (opcional) - desde v4.5.30

E aqui estão algumas linhas de amostra, que eu acho que explicam de onde vêm os 12, 51, etc, que você está vendo (na segunda coluna).

wtr.tag.highway.motorway = 1, 11, 120, carro wtr.tag.highway.motorway_link = 1, 12, 30, carro wtr.tag.highway.service = 1, 51, 5, carro | bicicleta wtr.tag .highway.living_street = 1, 63, 7, carro | bicicleta | pé

Ele diz que a classe pode estar no intervalo de 1 a 127 e há apenas 23 valores diferentes nessa tabela de configuração, então acredito que isso abrange todos os que você está vendo.

Seguindo o comentário do OP, aqui estão os documentos oficiais da rodovia osm


Quanto às bandeiras, acabei de escrever uma pequena explicação aqui. Eu gostaria de ter descoberto as bandeiras há um tempo! Muito útil e uma codificação inteligente.


Do arquivo osm2po.config:

tipo de estrada clazz autoestrada 11 autoestrada_link 12 tronco 13 tronco_link 14 primária 15 primária_link 16 secundária 21 secundária_link 22 terciária 31 terciária_link 32 residencial 41 estrada 42 não classificado 43

A seguinte técnica que vou mostrar a você exigirá entranhas de aço.

Dados os seguintes critérios

  • datadir é / var / lib / mysql
  • tabela é mydb.mytb
  • a coluna enum chamada é chamada enum_col
  • motor é MyISAM

Aqui está uma rachadura que desafia a morte:

CRIAR TABELA mydb.mybt LIKE mydb.mytb

ALTER TABLE mydb.mybt MODIFY enum_col ENUM ('Primeiro valor', 'Segundo valor')

SET wait_timeout = 86400 SET interativo_timeout = 86400

FLUSH TABLES COM READ LOCK

Em uma sessão OS / SSH separada, troque os arquivos .frm

  • $ mv /var/lib/mysql/mydb/mytb.frm /var/lib/mysql/mydb/myxx.frm
  • $ mv /var/lib/mysql/mydb/mybt.frm /var/lib/mysql/mydb/mytb.frm
  • $ mv /var/lib/mysql/mydb/myxx.frm /var/lib/mysql/mydb/mybt.frm

CAVEAT: NÃO POSSO RECEBER CRÉDITO POR ISSO!

Essa técnica vem de "MySQL de alto desempenho: otimização, backups, replicação e mais", páginas 146-148 sob o subtítulo Acelerando ALTER TABLE. Página 147 O parágrafo 1 diz:

A técnica que estamos prestes a demonstrar não é suportada, não documentada e pode não funcionar. Use-o por sua conta e risco. Aconselhamos você a fazer backup de seus dados primeiro!

De uma chance ! (Por favor, deixe-nos saber o que aconteceu)

ATUALIZAÇÃO 05/10/2011 17:49 EDT

Se a tabela for MyISAM e você tiver espaço suficiente em produção e uma janela de tempo de inatividade direto, tente o seguinte:


Sexta-feira, 30 de março de 2018

Python - PyProj - Transformar coordenada em & quotHK80 grade & quot para & quotWGS 84 / UTM zona 49N ou 49S & quot

Estou tentando usar o python pyproj para fazer a conversão acima (converter / transformar de Hong Kong GRID em Hong Kong UTM), mas estou obtendo valores diferentes do resultado esperado.

Meu resultado de conversão esperado é: "Norte 836148, Leste 822745"para" Norte 828672.7449, Leste 12488562.2742". Veja meus códigos abaixo para ambas as zonas (N e S): -

Será que meu resultado esperado está incorreto ou estou faltando alguma coisa? Quero certificar a saída esperada indo de: "Hong_Kong_1980_Grid_System" para "Hong_Kong_1980_UTM_Zone_49N / 49S"?

O resultado deve corresponder à tabela acima da grade de Hong Kong 1980 para WGS84 / UTM 49S

Arcpy - Por que aprender / usar caixas de ferramentas Python em vez de ferramentas de script Python?

Eu escrevi algumas caixas de ferramentas Python (que são novas no ArcGIS 10.1), mas ainda estou para decidir se / quando devo escrevê-las em vez das Ferramentas de script Python em uma caixa de ferramentas padrão.

Achei que a Ajuda Online poderia me esclarecer quando prefaciou alguns pontos com:


Depois de criadas, as ferramentas em uma caixa de ferramentas Python oferecem muitas vantagens


No entanto, todas as cinco vantagens listadas parecem ser sobre não ser capaz de usar Python para escrever ferramentas, e nenhuma parece especificar uma vantagem das caixas de ferramentas Python sobre as ferramentas de script Python.

As duas vantagens que consigo pensar são:

Estou negligenciando o caso convincente que levou a Esri a fornecer o recurso Python Toolbox e, em caso afirmativo, qual é?

Os dois são muito próximos em funcionalidade, mas não completamente equivalentes.

Comum a ambos


  • Inclui um conjunto de ferramentas com um alias exclusivo para identificação
  • Pode ligar de arcpy

Exclusivo para arquivos TBX:


  • Pode incluir referências a caixas de ferramentas do sistema, ferramentas COM personalizadas e ferramentas .Net personalizadas
  • As ferramentas do Model Builder podem ser incluídas na caixa de ferramentas
  • A documentação da ferramenta é armazenada dentro do arquivo .tbx
  • IU do assistente fácil para configurar parâmetros e fazer código de validação

Exclusivo para caixas de ferramentas Python:


  • Texto simples, para que as caixas de ferramentas possam ser tratadas da mesma forma que qualquer outro código (útil em ambientes onde boas ferramentas de controle de revisão são usadas, pois você pode rastrear seu histórico de desenvolvimento - veja quantos projetos no GitHub usam PYT em vez de TBX.)
  • Tenha mais controle sobre certos tipos de parâmetros (ou seja, você pode fazer tipos de dados compostos e definir esquemas de tabelas de valores)
  • isLicensed A propriedade pode ser usada para desabilitar uma ferramenta se um produto ("ArcInfo") ou extensão ("espacial") não estiver disponível.
  • A documentação da ferramenta é armazenada em arquivos XML na mesma pasta que o .pyt
  • Desvantagem: Nenhuma IU de assistente para configurar parâmetros de ferramenta, significativamente mais código de scaffolding em Python, transforma o desenvolvimento do Toolbox em mais uma tarefa formal de desenvolvimento de software do que simplesmente adicionar um script de implementação. Recarregar um pyt para carregar as alterações durante o desenvolvimento pode ser lento se o pyt for grande (isso pode ser evitado colocando ferramentas em outros arquivos e importando para que não precisem ser recompilados).

Há algum tempo, quando estava trabalhando na minha primeira dúzia ou mais de caixas de ferramentas de PYT, fiquei confuso com a dificuldade de configurar um PYT pela primeira vez, então desenvolvi uma ferramenta chamada tbx2pyt. Ele pegará uma caixa de ferramentas TBX e a converterá em um PYT com uma perda mínima de código. Na verdade, o PYT que o alimenta foi primeiro um TBX. Essa pode ser uma boa maneira de fazer a transição das ferramentas existentes para o formato Python Toolbox, se desejar. No mínimo, torna possível configurar os parâmetros de suas ferramentas usando a IU antes de mudar para o código.

Openlayers 2 - Como carregar blocos de mapas de acordo com o evento de arrastar / tocar

Estamos construindo apis de mapas para javascript integrados com nosso próprio servidor de dados de mapas (tiles). (Embora possamos usar camadas abertas ou qualquer outra coisa, mas não podemos por algumas razões de terceira parte).

Em uma palavra, estamos reescrevendo algo como camadas abertas.

O seguinte é o que fizemos:

Quando um mapa é criado, ele terá o contêiner (elemento dom), centro (LatLng) e zoom. Em seguida, iremos organizar os tiles dentro do container de acordo com o centro e zoom.

Quando o usuário arrasta o contêiner. Vamos registrar o aumento da posição do mouse. Em seguida, calcule o novo centro do mapa, recalcule os blocos necessários e organize-os.

Funciona como esperado, mas descobrimos que é difícil arrastar o mapa. Não é suave como as camadas abertas ou outra biblioteca de mapas durante a operação de arrastar.

Então eu me pergunto se estamos indo para o lado errado?

Você já pensou em olhar o código-fonte do OpenLayers para ver como eles fazem isso? Eu não posso dizer que é algo que eu pensaria em fazer, pois prefiro apenas usar o OpenLayers como está. Tem uma licença muito aberta, por isso não deve haver problemas. Se for um problema técnico, então é justo, embora certifique-se de que você dedicou tempo suficiente para ter certeza absoluta de que não pode simplesmente usar o OpenLayers, já que reescrever uma API de mapa inteiro parece um pesadelo. Peço desculpas se você já pensou em tudo, mas eu estaria prestando um péssimo serviço se pelo menos não mencionasse isso!

Voltando à questão em questão, você poderia olhar o código-fonte do OpenLayers para ver como eles fazem isso. Eu não diria que você deveria apenas arrancar, mas certamente inspire-se e veja se há algo óbvio que está faltando. Não sei como funciona o licenciamento para OpenLayers (e talvez alguém com mais conhecimento possa me esclarecer), mas tenho certeza que se você usasse partes do código-fonte do OpenLayers, você apenas teria que atribuí-lo apropriadamente a eles em seu código-fonte . Mesmo se você não fizer isso, você deve apenas como uma boa prática. De qualquer forma, aqui está um link para o módulo OpenLayers 'DragPan' no GitHub - OpenLayers DragPan - talvez você precise fazer algumas pesquisas a partir daí para encontrar exatamente o que procura, ou pode começar a procurar do topo - OpenLayers no GitHub


1 resposta 1

A pontuação f1 fornece a média harmônica de precisão e recuperação. As pontuações correspondentes a cada classe dirão a você a precisão do classificador na classificação dos pontos de dados nessa classe particular em comparação com todas as outras classes.

O suporte é o número de amostras da resposta verdadeira que existe nessa classe.

Você pode encontrar documentação sobre ambas as medidas na documentação do sklearn.

A última linha fornece uma média ponderada de precisão, recall e pontuação f1, onde os pesos são os valores de suporte. portanto, para precisão, a média é (0,50 * 1 + 0,0 * 1 + 1,0 * 3) / 5 = 0,70. O total é apenas para suporte total, que é 5 aqui.


O que significam os valores na coluna clazz (osm2po)? - Sistemas de Informação Geográfica

Se você estiver desenvolvendo um mapa coroplético de dados ordenados, uma das primeiras decisões a serem tomadas trata da classificação: quais valores devem ser associados a cada cor. Em outras palavras, quais unidades deveriam estar na classe mais baixa, quais unidades deveriam estar na classe mais alta e como as demais unidades deveriam ser distribuídas entre as classes restantes.

Entre as muitas escolhas feitas por analistas e designers, as decisões de classificação de dados podem ser as mais importantes, mas também as mais difíceis de entender. Um especialista em GIS deve fazer escolhas não apenas sobre em quantas classes diferentes os dados devem ser categorizados, mas quais devem ser os intervalos de valor dessas classes. Um pequeno ajuste das "quebras" nas faixas de valor dos dados ordenados, por exemplo, pode alterar o mapa significativamente e revelar tendências que não foram detectadas anteriormente (ou não estão de fato lá).

Nesta seção, são apresentados dois dos métodos "padrão" mais comuns de classificação de dados. Estas são duas das muitas opções disponíveis nas versões recentes do ArcView, e um designer deve estar ciente das diferenças entre todos os métodos. Cada um tem vantagens e desvantagens.

Esses métodos são ilustrados usando os seguintes dados:

Os dados acima são classificados nos esquemas de Quanitle e Equal Interval na tabela abaixo. A primeira letra de cada condado é indicada na coluna "condados" e os valores de dados correspondentes (a altura da barra no gráfico de barras) são listados na coluna "intervalos", representando intervalos de valores para cada uma das quatro classes.

Observe imediatamente as possíveis armadilhas desses métodos. Com uma classificação de quantis de quatro categorias, há um número igual de condados em cada classe, mas observe que os condados de Durst e Evans, embora tenham valores de atributo idênticos, são colocados em classes diferentes. Além disso, os condados de Manto e Niles são colocados com os condados extremos de Orton e Percy, em vez de com o condado de Lewis, ao qual são muito mais semelhantes. Este método, neste caso, leva a uma visualização enganosa.

Mudando para um método de intervalo igual de quatro categorias, o problema mais óbvio é que apenas três das quatro classes realmente contêm pontos de dados. Os intervalos de cada classe (13%) são os mesmos, mas como esses dados são distorcidos (tem alguns pontos de dados que são muito diferentes do resto), nenhum valor de atributo do condado realmente cai na terceira classe. Isso reduz a eficácia da visualização, eliminando efetivamente uma cor de preenchimento.

Veja como esses mapas - de dados idênticos - são diferentes, dependendo do esquema de classificação usado.

Existem métodos mais eficazes para visualizar esses dados.

Por que alguém os usaria, se são tão limitados?

Os dois esquemas de classificação acima são os mais facilmente calculados e um ou outro é geralmente a classificação padrão na maioria dos GIS. Esses métodos são adequados para exibir dados que variam linearmente, ou seja, dados sem outliers que tendem a desviar a média dos dados para longe da mediana. Um gráfico de tais dados como o anterior conteria colunas que aumentaram em altura igualmente da esquerda para a direita e os "degraus" entre as colunas seriam os mesmos.

Todos os dados solicitados devem ser examinados para determinar se a alteração do método de classificação tem um impacto significativo na tela. Nesse caso, um método diferente dos dois discutidos nesta seção deve ser usado para uma representação visual mais precisa e informativa das informações.


Em um banco de dados, zero é um valor. O valor nulo significa que nenhum valor existe. Quando usado como um valor, null não é um local da memória. Apenas os ponteiros contêm localizações de memória. Sem um caractere nulo, uma string não terminaria corretamente, o que causaria problemas.

Na programação C e C ++, um ponteiro é uma variável que contém uma localização na memória. O ponteiro nulo é um ponteiro que intencionalmente aponta para nada. Se você não tem um endereço para atribuir a um ponteiro, pode usar null. O valor nulo evita vazamentos de memória e travamentos em aplicativos que contêm ponteiros. Um exemplo de um ponteiro nulo em C é:


6 Respostas 6

Você deseja usar uma expressão CASE de algum tipo.

No SQL Server, o código seria assim:

Editar: Conforme declarado nos comentários (e em algumas das outras respostas), o ELSE não é necessário se você colocar uma cláusula WHERE na declaração.

Isso evita atualizações desnecessárias. O importante em ambos os casos é lembrar que existem opções diferentes de M & amp W (NULL, por exemplo) e você não deseja inserir informações erradas. Por exemplo:

Isso substituiria quaisquer NULLs (ou outros gêneros possíveis) como 'M', o que seria incorreto.

Algumas outras opções seriam

No Oracle, você pode usar um CASE como as outras respostas têm:

Você também pode usar um DECODE:

Para alternar entre apenas dois valores, você também pode tentar este truque, que não usa uma expressão CASE (assumindo Transact-SQL aqui):

Dependendo do valor atual de Gênero, ASCII (Gênero) cancelará ASCII ('M') ou ASCII ('W'), deixando o outro código para ser transformado pela função CHAR () de volta ao caractere correspondente.

Estou deixando isso apenas para comparação, no entanto. Embora essa opção possa ter uma aparência de elegância, uma solução usando uma expressão CASE seria indiscutivelmente mais legível e, portanto, mais fácil de manter, e definitivamente seria mais fácil expandir para mais de dois valores.


O que exatamente significa & ldquoNo Join Predicate & rdquo no SQL Server?

MSDN "Missing Join Predicate Event Class" diz isso "indica que uma consulta está sendo executada sem predicado de junção".

Mas, infelizmente, não parece ser tão fácil assim.

Por exemplo, situação muito simples:

Não há dados nas tabelas, também não há nenhum aviso, embora obviamente não tenha um predicado de junção.

Se eu der uma olhada na documentação do SQL Server 2005 (o mesmo link, apenas outra versão do servidor), há uma frase extra: "Este evento é produzido apenas se ambos os lados da junção retornarem mais de uma linha."Isso faria todo o sentido na situação anterior. Não há dados, então ambos os lados retornam 0 linhas e nenhum aviso. Insira linhas e receba um aviso. Ok, legal.

Mas para a próxima situação confusa, eu insiro os mesmos valores em ambas as tabelas:

Porque isto é assim?

Observação: alguns scripts que usei para detectar essas consultas ruins em meu servidor.


Você pode usar o argumento colClasses para ler.csv para selecionar as colunas que deseja. Nesse caso, você pode definir colClasses como c ("NULL", NA, NA)

De maneira mais geral, você pode usar colClasses para especificar os tipos particulares de colunas que NA significa usar a abordagem padrão que é tentar descobrir o que a coluna é automaticamente. Consulte a página de ajuda de read.csv para obter mais detalhes.

Outra opção é ler todo o arquivo, mas manter apenas duas das colunas, por exemplo:

ou, usando nomes de coluna, por exemplo. se as colunas forem nomeadas 'col1, col2, col3'

Este leva menos tempo em comparação com as respostas fornecidas


Diferença entre média e média

Média vs Média

Média ou média? Existem diferenças?

O termo & # 8216média & # 8217 é usado para expressar que algo é estatisticamente a norma. Isso significaria que um valor é esperado, médio, usual ou comum. A & # 8216média & # 8217 representa um valor que melhor representaria uma amostra.

Em matemática, normalmente consideramos a média como a soma de todos os valores dividida pelo número de valores adicionados. A rigor, é a & # 8216média aritmética & # 8217 ou simplesmente referida como & # 8216média & # 8217. A média é quase considerada sinônimo de média, mas os estatísticos certamente discordarão, porque, em essência, média é apenas uma forma de descrever uma média.

Uma média pode ser descrita de várias maneiras. Além de expressá-lo como a média da amostra, também pode ser dado como a mediana ou a moda.

A mediana é o ponto central do conjunto. Nas estatísticas, geralmente é o número que ocorre no meio de um conjunto de números. A descrição da média pode ser na mediana, algumas vezes, se for considerada a forma mais adequada para descrever a tendência central de uma determinada amostra.

O modo é o valor que ocorre com mais frequência em um conjunto de dados. Também é considerada uma forma de média. Ele afirmará que os dados que ocorrem com mais frequência são a média da amostra. É também uma das formas mais comuns de expressar uma média, próxima ao significado.

Tendo dito tudo isso, o termo & # 8216média & # 8217 abrange várias maneiras de medir qual valor melhor caracteriza uma amostra específica. Os termos e medidas usados ​​realmente dependem da situação. Ele será amplamente baseado em como você deseja descrever um determinado conjunto de dados ou amostra.

Além disso, a média também pode ser de muitos tipos, por ex. média quadrática, média harmônica, média geométrica, etc. Aparentemente, a média aritmética é a única que se distingue como uma forma de média.

Na linguagem, as pessoas normalmente usarão o termo & # 8216médio & # 8217 em conversas casuais. A média é geralmente usada por matemáticos e estatísticos.

1. A média pode ser média (média aritmética), mediana ou modo. Média é basicamente uma forma de descrever uma média da amostra.

2. A média também pode ser de vários tipos, mas apenas a média aritmética é considerada uma forma de média.

3. & # 8216Média & # 8217 é geralmente usado em conversas casuais em inglês, enquanto & # 8216mean & # 8217 é geralmente usado em linguagem técnica.


Assista o vídeo: postgis OSM data to Power BI