Outros

Ferramenta para Análise de Distâncias e direções a partir de feições ou células – ArcGIS

Acesse também nosso site GeoSenso


Pensando como o Software II: Classificação Supervisionada Método do Paralelepípedo – MATLAB

Pessoal Neste tutorial apresento a resolução do exercício proposto no post anterior pelo Método
do Paralelepípedo, que apesar de ser um dos métodos mais simples da Classificação Supervisionada
tem o seu valor por ser mais rápido no processamento, mas informo que perdemos um pouco na
“eficiência” devido suas restrições na hora de classificar, por isso aconselho que seja utilizado quando
se deseja “separar” poucas variedades.

por exemplo:
Realizar a classificação em uma imagem que só tenha Aguá de Vegetação.
Pode parecer banal, mas acredite tem suas aplicações.

Vejam a Resolução no MATLAB:

%Classificação Supervisionada
%Método do Paralelepípedo

clear
clc

%CLASSE 1
C1B1=[16;18;20;11;17;18;14;10;4;7] %AMOSTRAS DA BANDA 1
C1B2=[13;13;13;12;12;11;11;10;9;9] %AMOSTRAS DA BANDA 2
%CLASSE 2
C2B1=[8;9;6;8;5;7;4;6;4;3] %AMOSTRAS DA BANDA 1
C2B2=[8;7;7;6;5;5;4;3;2;2] %AMOSTRAS DA BANDA 2
%CLASSE 3
C3B1=[19;19;17;17;16;14;13;13;11;11] %MEDIA DAS AMOSTRAS DA BANDA 1
C3B2=[6;3;8;1;4;5;8;1;6;3] %MEDIA DAS AMOSTRAS DA BANDA 2

%Pixels:
C1X=5;
C1Y=9;
C2X=9;
C2Y=8;
C3X=15;
C3Y=9;

%valores máximos e mínimos
MAXC1B1 = max(C1B1);
MINC1B1 = min(C1B1);
MAXC1B2 = max(C1B2);
MINC1B2 = min(C1B2);

MAXC2B1 = max(C2B1);
MINC2B1 = min(C2B1);
MAXC2B2 = max(C2B2);
MINC2B2 = min(C2B2);

MAXC3B1 = max(C3B1);
MINC3B1 = min(C3B1);
MAXC3B2 = max(C3B2);
MINC3B2 = min(C3B2);

fprintf(‘——————-Teste para C1——————-\n’);
if C1X<=MAXC1B1 & C1X>=MINC1B1 & C1Y<=MAXC1B2 & C1Y>=MINC1B2
fprintf(‘O pixel X1 pertence a Classe 1 \n’);
end

if C1X<=MAXC2B1 & C1X>=MINC2B1 & C1Y<=MAXC2B2 & C1Y>=MINC2B2
fprintf(‘O pixel X1 pertence a Classe 2 \n’);
end

if C1X<=MAXC3B1 & C1X>=MINC3B1 & C1Y<=MAXC3B2 & C1Y>=MINC3B2
fprintf(‘O pixel X1 pertence a Classe 3 \n’);
end

fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);

fprintf(‘——————-Teste para C2——————-\n’);
if C2X<=MAXC1B1 & C2X>=MINC1B1 & C2Y<=MAXC1B2 & C2Y>=MINC1B2
fprintf(‘O pixel X2 pertence a Classe 1 \n’);
end

if C2X<=MAXC2B1 & C2X>=MINC2B1 & C2Y<=MAXC2B2 & C2Y>=MINC2B2
fprintf(‘O pixel X2 pertence a Classe 2 \n’);
end

if C2X<=MAXC3B1 & C2X>=MINC3B1 & C2Y<=MAXC3B2 & C2Y>=MINC3B2
fprintf(‘O pixel X2 pertence a Classe 3 \n’);
end

fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);

fprintf(‘——————-Teste para C3——————-\n’);
if C3X<=MAXC1B1 & C3X>=MINC1B1 & C3Y<=MAXC1B2 & C3Y>=MINC1B2
fprintf(‘O pixel X3 pertence a Classe 1 \n’);
end

if C3X<=MAXC2B1 & C3X>=MINC2B1 & C3Y<=MAXC2B2 & C3Y>=MINC2B2
fprintf(‘O pixel X3 pertence a Classe 2 \n’);
end

if C3X<=MAXC3B1 & C3X>=MINC3B1 & C3Y<=MAXC3B2 & C3Y>=MINC3B2
fprintf(‘O pixel X3 pertence a Classe 3 \n’);
end

fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);

RESULTADO:
C1B1 =

16
18
20
11
17
18
14
10
4
7
C1B2 =

13
13
13
12
12
11
11
10
9
9
C2B1 =

8
9
6
8
5
7
4
6
4
3
C2B2 =

8
7
7
6
5
5
4
3
2
2
C3B1 =

19
19
17
17
16
14
13
13
11
11
C3B2 =

6
3
8
1
4
5
8
1
6
3

——————-Teste para C1——————-
O pixel X1 pertence a Classe 1

—————————————————

——————-Teste para C2——————-
O pixel X2 pertence a Classe 2

—————————————————

——————-Teste para C3——————-
O pixel X3 pertence a Classe 1

—————————————————

>>

O interessante é perceber a diferença entre as classificações, os resultados foram diferentes devido o Método

da Distância Mínima da Média ser mais eficiente do que o Método do Paralelepípedo.
Existem outros métodos melhores, um dos mais usados é o Máxima verossimilhança, mas irei parar por aqui!

=)

Espero que tenham gostado.


Visual C# + Mysql – Formulário de Cadastro de clientes para Web

Pessoal, este mês finalizei meu curso de Programação e como trabalho de conclusão desenvolvi
este formulário de Cadastro de Clientes para Web utilizando o Visual C# + Mysql.

Código:

Realizando a Conexão com o Banco de Dados

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;

namespace Trabalho1
{
public partial class _Default : System.Web.UI.Page
{
protected void Default_Load(object sender, EventArgs e)
{

}

protected void Salvar_bt_Click(object sender, EventArgs e)
{
MySqlConnection conn; //declaração da conexão
string conexao = “Server=localhost; User Id=root; Password=”; Database=cadastro;”;
conn = new MySqlConnection(conexao);
string comando = “insert into formulario (nome,cpf,endereco,cidade,estado,telefone,celular) “;
comando += “values (‘” + nome_tb.Text + “‘,'” + cpf_tb.Text + “‘,'”;
comando += endereco_tb.Text + “‘,'” + cidade_tb.Text + “‘,'” + estado_tb.Text;
comando += “‘,'” + telefone_tb.Text + “‘,'” + celular_tb.Text + “‘)”;
MySqlCommand cmd = new MySqlCommand(comando);
cmd.Connection = conn; //prepara a conexão para realizar a conexão
conn.Open(); //abrindo a conexão
cmd.ExecuteNonQuery(); //EXECUTAR a conexão MAS NÃO RETORNAR NENHUMA CONSULTA
conn.Close(); //fechando a conexão
id_1.Text = “”;
nome_tb.Text = “”;
cpf_tb.Text = “”;
endereco_tb.Text = “”;
cidade_tb.Text = “”;
estado_tb.Text = “Go”;
telefone_tb.Text = “”;
celular_tb.Text = “”;
}

}
}

Código do Formulário:

<%@ Page Title=”Cadastro” Language=”C#” MasterPageFile=”~/Site.master” AutoEventWireup=”true”
CodeBehind=”Default.aspx.cs” Inherits=”Trabalho1._Default” %>

<asp:Content ID=”HeaderContent” runat=”server” ContentPlaceHolderID=”HeadContent”>
</asp:Content>
<asp:Content ID=”BodyContent” runat=”server” ContentPlaceHolderID=”MainContent”>
<h2>
&nbsp;</h2>
<p>
&nbsp;<asp:Label ID=”id_lb” runat=”server” Text=”Id.:”></asp:Label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:TextBox ID=”id_1″ runat=”server” Width=”36px”></asp:TextBox>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</p>
<p>
&nbsp;<asp:Label ID=”Nome_lb” runat=”server” Text=”Nome.:”></asp:Label>
&nbsp;&nbsp;
<asp:TextBox ID=”nome_tb” runat=”server” Width=”275px”></asp:TextBox>
&nbsp;<asp:Label ID=”Cpf_lb” runat=”server” Text=”Cpf.:”></asp:Label>
&nbsp;<asp:TextBox ID=”cpf_tb” runat=”server”></asp:TextBox>
</p>
<p>
&nbsp;<asp:Label ID=”Endereco_lb” runat=”server” Text=”End.:”></asp:Label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:TextBox ID=”endereco_tb” runat=”server” Width=”270px”></asp:TextBox>
</p>
<p>
<asp:Label ID=”Cidade_lb” runat=”server” Text=”Cidade.:”></asp:Label>
&nbsp;
<asp:TextBox ID=”cidade_tb” runat=”server”></asp:TextBox>
&nbsp;
<asp:Label ID=”Estado_lb” runat=”server” Text=”Estado.:”></asp:Label>
&nbsp;<asp:DropDownList ID=”estado_tb” runat=”server” AutoPostBack=”True” Height=”23px”
Width=”46px”>
<asp:ListItem>AC</asp:ListItem>
<asp:ListItem>AL</asp:ListItem>
<asp:ListItem>AP</asp:ListItem>
<asp:ListItem>AM</asp:ListItem>
<asp:ListItem>BA</asp:ListItem>
<asp:ListItem>CE</asp:ListItem>
<asp:ListItem>DF</asp:ListItem>
<asp:ListItem>ES</asp:ListItem>
<asp:ListItem>GO</asp:ListItem>
<asp:ListItem>MA</asp:ListItem>
<asp:ListItem>MS</asp:ListItem>
<asp:ListItem>MG</asp:ListItem>
<asp:ListItem>PA</asp:ListItem>
<asp:ListItem>PB</asp:ListItem>
<asp:ListItem>PR</asp:ListItem>
<asp:ListItem>PE</asp:ListItem>
<asp:ListItem>PI</asp:ListItem>
<asp:ListItem>RJ</asp:ListItem>
<asp:ListItem>RN</asp:ListItem>
<asp:ListItem>RS</asp:ListItem>
<asp:ListItem>RO</asp:ListItem>
<asp:ListItem>RR</asp:ListItem>
<asp:ListItem>SC</asp:ListItem>
<asp:ListItem>SP</asp:ListItem>
<asp:ListItem>SE</asp:ListItem>
<asp:ListItem>TO</asp:ListItem>
<asp:ListItem Value=”MT”></asp:ListItem>
</asp:DropDownList>
</p>
<p>
<asp:Label ID=”Telefone_lb” runat=”server” Text=”Telefone.:”></asp:Label>
<asp:TextBox ID=”telefone_tb” runat=”server”></asp:TextBox>
&nbsp;
<asp:Label ID=”Celular_lb” runat=”server” Text=”Celular.:”></asp:Label>
&nbsp;<asp:TextBox ID=”celular_tb” runat=”server”></asp:TextBox>
</p>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:Button ID=”Salvar” runat=”server” Text=”Salvar”
onclick=”Salvar_bt_Click” />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:Button ID=”Limpar_bt” runat=”server” Text=”Limpar” />
</p>
<p>
&nbsp;</p>
<p>
&nbsp;</p>
</asp:Content>

No próximo post estarei explicando como criar um Banco de Dados com o Mysql

Visitem também nosso site GeoSenso


Derivative Calculator – Cálculo de Derivadas online

Todo Tecnólogo em Geoprocessamento se depara com a tal das derivadas em suas matérias iniciais,
hoje apresento à vocês um site que realiza o cálculo destas derivadas. Achei a página muito interessante
e resolvi compartilhar com vocês  para servir como base aos seus cálculos.

Para acessar clique na imagem abaixo.

Façam bom proveito.

acesse também http://www.geosenso.com


Instalando Linux em máquina Virtual – OSGeo Live

Vídeo Tutorial:
Instalando o melhor sistema para Geoprocessamento em Linux
utilizando máquina virtual [Virtual Box].

O OSGeo Live é um sistema bem completo para geoprocessamento
Veja os aplicativos inclusos que mais se destacam:

WebGIS/Webmapping:

-OpenLayers 2.10
-Geomajas — 1.8
-MapFish 2.2
-GeoMoose 2.4
-GeoServer 2.1.1
-MapServer 6.0.1
-GeoNetwork 2.6.4

Mapeamento e Gestão de Eventos Extremos (Desastres):

-Sahana Eden 0.5.5
-Ushahidi 2.1

Banco de Dados Geográfico:

-PostGIS 1.5
-SpatiaLite 2.3.1 / 2.4 beta
-Rasdaman 8.2 (banco de dados raster)
-pgRouting 1.05 (encaminhamento para PostGIS)

Desktop GIS

-Quantum GIS (QGIS) 1.7.0
-GRASS GIS 6.4.1
-gvSIG desktop 1.11
-uDig 1.2.2
-Kosmo GIS 2.0.1
-OpenJUMP GIS 1.4.0.1
-SAGA 2.0.7
-OSSIM 1.8.6 (Processamento de Imagens)
-Geopublisher 1.7 (Catálogos)
-AtlasStyler 1.7 (Editor de Estilo)

obs: Utilizei uma versão no vídeo roda pelo DVD não sendo necessário instalar no HD,
portando, deste modo toda vez que desejar executar este sistema, será necessário
executar novamente o arquivo do DVD conforme mostrado nos tutoriais.

espero que tenham gostado.
Mais tutoriais:
http://www.geosenso.com/


PRIMEGEO

Pessoal é com prazer que apresento à vocês a empresa PRIMEGEO.

A PRIMEGEO se consolidou como líder no segmento, com forte atuação nacional, fornece soluções em mapeamentos para produtores, engenheiros agrônomos, empresas de consultoria agropecuária e agricultura de precisão em todo o país.

Composta por profissionais com reconhecida experiência no mercado, a PRIMEGEO surgiu em reposta a uma demanda crescente de várias
instituições e profissionais liberais, que necessitam de tecnologia de ponta na obtenção de informações geográficas precisas para a tomada de decisões customizadas baseadas em mapas personalizados, desenvolvidos especialmente para atender a cada cliente.

Embora com a maior carteira de clientes no ramo do agronegócio (mais de 200 mil hectares mapeados), a PRIMEGEO fornece soluções com alto nível de precisão em mapeamento para diversos segmentos de mercado, entre eles: educacional, urbano, rural, turismo e marketing, gerando uma redução significativa de custos sem o comprometimento dos resultados.

Missão

          Fornecer soluções em mapeamentos customizados para diversos segmentos no mercado, com foco no Agronegócio, com o objetivo de contribuir com o crescimento da capacidade produtiva do nosso país e com a preservação do meio ambiente.

Visão

          Atuar com responsabilidade corporativa e social, fornecendo soluções em tecnologia de geomapeamentos com alto padrão de excelência.

Valores

Ética

Responsabilidade

Competência Técnica

Dedicação

Inovação

Precisão e Qualidade

———————————————————————————————————————————————

Agradeço a Deus por me conceder uma vaga de Estagiário nesta empresa e participar dessa equipe!

Agradeço também as experiências adquiridas no Ministério Público do Estado de Goiás, que foi meu estágio anterior.

O Ministério Público possui dentro do Departamento de TI um departamento de Geoprocessamento, diga-se de passagem muito bem estruturado e com excelente condições de trabalho.
Obrigado todos companheiros de trabalho.


Fusão de imagens com Componente Principal – ENVI

Inicie o ENVI, adicione a imagem de Componentes Principais criada a partir das bandas 1 (0.45 0.52), 2 (0.53µ 0.61µ) e 3 (0.63µ 0.69µ) do sensor ETM+ do satélite Landsat 7 com resolução de 30 metros. Adicione também a banda Pan (0.52µ 0.90µ) que possui resolução de 15 metros também gerada pelo sensor ETM+ do satélite Landsat 7. O objetivo desse tutorial é gerar uma imagem de Componentes Principais com Resolução de 15 metros.

Depois de abrir as imagens, Acesse:
Spectral > PC Spectral > Sharpening
Na janela Select Low Spatial Resolution Multi Band Input File, selecione a imagem de Componentes Principais (resolução baixa – 30 metros) e clique em Ok.

Na janela Select High Spatial Resolution Input File, selecione a banda pancromática (resolução alta – 15 metros) e clique em Ok.

Na janela PC Spectral Sharpen Parameters
em Resampling selecione Cubic Convolution
clique em Choose para determinar o destino em que será salvo a imagem e em seguida clique em OK

Pronto, a nova imagem de Componentes Principais está com uma resolução de 15 metros. Este método de fusão de imagens por componentes principais baseia-se na substituição da primeira componente pela imagem de resolução maior, a qual pode ser contrastada de forma a ter média e variância próximas às da primeira componente.
Isso pode ser feito porque assume-se que ambas as imagens tem agora características espectrais semelhantes.
Para visualizar o resultado final basta abrir as imagens em display diferentes

Qualquer dúvida ou correção entrem em contado.
e-mail: aro_junior@hotmail.com
Twitter: @A_Juni0r