terça-feira, 31 de maio de 2011

Como: Salvar um shapefile corrompido

Software:      ArcGIS - ArcEditor 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1 e 10.0 ArcGIS - ArcInfo 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1 e 10.0 ArcGIS - ArcView 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1 e 10.0
Platformas:   N/A

Resumo
As instruções fornecidas descrevem várias formas de salvar um shapefile corrompido. Dentre as causas comuns que podem corromper um shapefile, estão:

 - Um “crash” no computador durante uma operação de salvamento.
– Adicionar uma geometria ilegal, como uma “gravata borboleta” (bowties).
– Modificar os atributos em outro software, como o Microsoft Excel.


Está fora do âmbito deste documento enumerar todas as causas e situações onde os arquivos shapefile são corrompidos.

Se um dos passos abaixo corrigir o shapefile, não é necessário passar para o próximo passo. Se os passos neste documento não recuperarem o shapefile, retorne o backup.

Procedimento
Selecione uma opção abaixo. Faça um novo back-up do dado antes de experimentar cada uma destas opções.
-     Utilize a ferramenta Check Geometry no caminho ArcToolBox > Data Management Tools > Features. Problemas com dados são reportados durante a execução da ferramenta, ou numa tabela de saída. Veja a tabela de saída após a execução do comando. Uma tabela vazia indica que a ferramenta não encontrou nenhuma geometria inválida (bad geometry). Se uma geometria inválida for reportada, utilize a ferramenta Repair Geometry conforme descrito abaixo.

-       Execute o comando Repair Geometry no ArcToolBox > Data Management Tools > Features. Após rodar a ferramenta Repair Geometry , execute novamente o Check Geometry para ter certeza de que todas as feições corrompidas foram removidas. Repita o Check Geometry/Repair Geometry quantas vezes forem necessárias.

-      Exporte o dado para um geodatabase, então copie-o de volta para um novo shapefile.

-      Se o dado estiver num drive na rede, copie-o para um drive local. Se o dado estiver num drive local, copie-o para a raiz do drive principal, por exemplo, C:\.

-      Verifique se há algum nome ilegal nos campos da tabela de atributos. O nome dos campos podem ter somente dez caracteres. O nome dos campos deve iniciar com uma letra. O nome dos campos não pode conter espaços ou caracteres especiais, exceto o caracter underscore (_).

-      O nome dos arquivos não pode conter caracteres especiais, exceto para o character underscore (_). Geralmente falando, espaços  no nome dos shapefiles funcionam no ArcGIS 9.X, entretanto para finalidades de teste, renomeie o shapefile para que ele não tenha espaços.

-      Remova todos os arquivos de indices (espacial, atributo e geocodificação), projeção e metadados no Windows Explorer. Isto é, remova todos os arquivos, exceto o the .shp, .dbf e .shx. Verifique se uma cópia destes arquivos foi feita antes de removê-los.

-      Tente abrir o shapefile em outro computador.

          Abra o shapefile em outro software, preferencialmente o ArcView 3.X. Se você puder abrí-lo no ArcView 3.X, tente salvá-lo em um novo shapefile clicando em Theme > Convert To Shapefile.

-     Copie o dado para uma nova feature class usando o simple data loader ou copiando e colando as feições numa sessão de edição no ArcMap. Se seu shapefile não contém muitas feições, você pode tentar copiar e colar as feições uma por vez, ou grupos de feições para determinar quais feições podem estar corrompidas. Após cada operação de copiar e colar, salve as edições e veja se o problema desapareceu.

-     Se o dado ainda não tiver sido reparado e as ferramentas Check Geometry/Repair Geometry nas opções 1 ou 2 acima reportarem os IDS dos registros errados, remova-os manualmente numa sessão de edição.

-     Faça um cálculo num campo usando o ArcGIS e o ArcView 3.X usando o field calculator. O field calculator pode parar num registro corrompido. Examine a tabela de atributos do shapefile corrompido para determinar isto. Por exemplo, você pode ter um shapefile com 1.000 registros. Se o field calculator parar no 750º registro, então tanto o 750º ou o 751º podem estar corrompidos. Para apagar o registro corrompido, inicie uma sessão de edição no ArcMap. Copie e cole todos os registros exceto os suspeitos de erro para um novo shapefile. Como alternativa, tente apagar manualmente o(s) registro(s) com suspeita de geometria inválida.

-     Exporte o shapefile para um geodatabase. Veja so o exporte para num registro em particular. Examine a tabela de atributos da feature class exportada para determinar isto. Por exemplo, você pode ter um shapefile com 1.000 registros. Se a operação de export parar no registro parar no 750º registro, então tanto o 750º ou o 751º registros podem estar corrompidos. Para apagar o registro corrompido, inicie uma sessão de edição no ArcMap. Copie e cole todos os registros exceto os suspeitos de erro para um novo shapefile. Como alternativa, tente apagar manualmente o(s) registro(s) com suspeita de geometria inválida.

-     Apague todos os campos do shapefile exceto o FID, Shape e um atributo (shapefiles devem ter ao menos um campo). Se o problema persistir, adicione um novo campo string (texto) e remova os demais atributos. Se o problema desaparecer, isto poderia indicar um problema com um dos campos. Recupere o backup e use um processo de eliminação para determinar o campo corrompido.

-     Execute o aplicativo Shapefile Repairer encontrado na seção de Informações Relacionadas na parte inferior desta página. Note que este aplicativo não é suportado pela equipe de suporte técnico da ESRI.

-     Execute o aplicativo Shapefile Repair (não deve ser confundido com o Shapefile Repairer) encontrado na seção de Informações Relacionadas na parte inferior desta página. Note que este aplicativo não é suportado pela equipe de suporte técnico da ESRI.

-     Execute o aplicativo FunkFinder encontrado na seção de nformações Relacionadas na parte inferior desta página. Este aplicativo irá escrever os ID’s das feições suspeitas numa tabela dbf. Você pode tentar removê-los a partir de uma sessão de edição no ArcMap ou copiando e colando todas as feições exceto os registros suspeitos de erro para um novo shapefile Note que este aplicativo não é suportado pela equipe de suporte técnico da ESRI.

-     Faça download e execute o aplicativo CleanShapefile a partir da seção de Informações Relacionadas na parte inferior desta página (apenas para o ArcGIS 8.3.).

Informações Relacionadas
       FunkFinder Utility

Criado em: 28/2/2008
Modificado em: 31/05/2011

fonte: http://www.support.esri.com

Como: Determinar o tamanho de um índice espacial (spatial index)

Software:      ArcGIS - ArcEditor 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1 e 10.0 ArcGIS - ArcInfo 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1 e 10.0 ArcSDE 8.0.1, 8.0.2, 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1 e 10.0
PlataformasWindows NT 4.0, 2000, XP, Vista, Windows 2003 Server, Windows 2008 Server, Windows 7

Resumo
O índice espacial de uma classe de feição do ArcSDE geodatabase faz consultas com velozes filtros espaciais. Determinar um valor ótimo do índice espacial é um processo interativo e depende da geometria das feições individuais que podem variar de dataset a dataset. Este post demonstra um bom ponto de partida de como determinar um índice espacial para uma classe de feição onde a geometria das feições estão com tamanho relativamente uniformes. Este documento usa uma linha de comando do SDE e SQL*Plus. O mesmo processo pode ser usado com o SQL Server Query Analyzer.

Procedimento
1.    Use o comando sdelayer para obter o layer ID e as estatísticas de índices espaciais das camadas (layer's).
sdelayer -o si_stats -l <layer_name>,shape -i <instance> -u <username> -p <password>
O Layer ID estará na Terceira linha que diz: Layer 1 Spatial Index Statistics:
2.    Inicie o SQLPlus e log como proprietário (OWNER) da camada (layer).
3.    Calcule o tamanho médio do envelope das feições e multiplique por 3.
select avg((((emaxx - eminx)+(emaxy-eminy))/2)*3) average_edge from<F_table>;
 Onde <F_table> é o F<layerID>.

Criado em: 19/11/2007
Modificado em: 31/05/2011
fonte: http://www.support.esri.com

Como: Instalar o ArcSDE numa máquina remota ao servidor RDBMS do Oracle

Software:      ArcSDE 8.2, 8.3, 9.0, 9.1, 9.2, 9.2, 9.3, 9.3.1 e 10.0
Plataforma:   N/A

Resumo
Às vezes é necessário instalar o ArcSDE numa máquina diferente da máquina onde a instância do Oracle está instalada. Embora este procedimento seja possível, é geralmente recomendado que o ArcSDE esteja no mesmo servidor do RDBMS Oracle. As instruções fornecidas abaixo, descrevem como instalar o ArcSDE em uma máquina e manter o RDMS Oracle em outra.

Procedimento
1.    Certifique-se de que o Oracle esteja instalado e rodando no servidor.

2.    Instale o Oracle Net Software no Servidor onde o ArcSDE está instalado. Certifique-se que o SQL irá operar o servidor de dados Oracle a partir desta máquina remota.

Como o ArcSDE está em uma maquina diferente do Oracle, o ArcSDE é na verdade um cliente do Oracle, e irá usar um software de comunicação Oracle Net.

3.    Realize a pré-instalação dos requisitos, como descrito no guia de instalação do ArcSDE.
O ArcSDE Installation Guide pode ser encontrado no CD de instalação como um documento HTML.

4.    Instale o ArcSDE, seguindo o guia de instalação.

5.    Realize o post installation do ArcSDE, conforme o guia de instalação.

Quando estiver no Wizard do Post Installation, use o Oracle Net Service Name criado com o Oracle Client em todos os locais onde o Wizard solicitar o Net Service Name.

Se a criação do repositório de tabelas do post installation for através do comando sdesetup pode ser necessário uma senha -p da seguinte forma: password@Oracle_net_service_name

6.    No Windows:

Será necessário um passo adicional. Você deve criar um serviço no Windows.

Use o comando sdeservice -o create para criar um serviço do windows pois o Install Wizard não foi desenvolvido para criar um serviço para o ArcSDE que esteja em uma máquina remota ao servidor de dados RDBMS. No prompt de comando, insira: sdeservice -h para obter informações sobre a sintaxe do comando ou consulte o guia ArcSDE Developer.

No setup do ArcSDE 8.x não use a opção –d do sdeservice para não criar uma dependência. Não é possível que um serviço do windows tenha uma dependência de um serviço que esteja num servidor remoto.

No setup do ArcSDE 9.0, a opção –d para o comando sdeservice é necessária e você deve inserir o nome da instância do Oracle (SID). Entretanto, como não é possível para um serviço do windows ter uma dependência de um serviço que está num servidor remoto, você irá precisar adicionar na sintaxe do sdeservice o parâmetro –n para recusar a dependência.

Exemplo: sdeservice -o create -p sdepasswd -d ORACLE9I,ORCL -n -i esri_sde

7.    Para o Oracle conectar uma instância remota, o Oracle tem que definir uma variável de ambiente para identificar a instância remota do Oracle através de um net service name.
Se o servidor ArcSDE estiver no Windows, configure a variável LOCAL para o Oracle net service name no arquivo SDEHOME\etc\dbinit.sde;

set LOCAL=netservicename.

O arquivo dbinit.sde deverá ter a configuração LOCAL adicionada após o serviço do ArcSDE ter sido criado com o comando sdeservice. Se o serviço do ArcSDE for criado após o arquivo dbinit.sde ter sido atualizado, ele irá sobrepor a configuração com o ORACLE_SID. O arquivo SDEHOME/etc/dbinit.sde não deve conter a seguinte linha - set ORACLE_SID=SID.

Se o servidor ArcSDE está no UNIX, configure o TWO_TASK para o Oracle net service name. A variável ORACLE_HOME também deve estar configurada.
TWO_TASK e LOCAL são variáveis de ambiente do Oracle. Consulte a documentação do Oracle para mais informações.

A variável TNS_ADMIN deve estar configurada se o local default do arquivo tnsnames.ora não for usado.

Se você receber erros de conexão do Oracle, verifique se a variável TNS_ADMIN foi configurada, e para onde ela está apontando. Configure a variável TNS_ADMIN para ver se ela resolve o problema. Verifique o arquivo tnsnames.ora para correção. Verifique se a variável ORACLE_HOME foi configurada.

Quando o servidor do ArcSDE estiver iniciado, o processo giomgr irá ler as configurações da variável no arquivo $SDEHOME/etc/dbinit.sde. Essas variáveis configuradas sobrepõem as variáveis definidas nos arquivos .cshrc ou .profile. O papel do arquivo dbinit.sde é mais detalhado no livro Managing ArcSDE Services.

8.    Inicie o ArcSDE, conforme o guia de instalação.

Informações Relacionadas

Criado em: 24/3/2007
Modificado em: 31/05/2011
fonte: http://www.support.esri.com