| Version 11 (modified by gribeiro, 10 years ago) (diff) |
|---|
TerraMA² - Configuração BDQueimadas
1. Crie um banco de dados chamado queimadas.
2. Remova a role public da lista de acesso a este banco.
3. Crie as seguintes contas de usuário, sem privilégios de super-usuário:
- jean
- gribeiro
- appqueimadas
4. Atribua os seguintes privilégios:
GRANT connect ON DATABASE queimadas TO gribeiro, jean, appqueimadas; GRANT all ON DATABASE queimadas TO jean; GRANT SELECT ON ALL TABLES IN SCHEMA public TO gribeiro, appqueimadas;
5. No GeoServer?, crie uma workspace:
Data -> Workspaces -> Add new workspace
Name: queimadas
Namespace URI: http://www.inpe.br/queimadas
6. Registre o servidor PostgreSQL como uma fonte de dados do GeoServer?:
Data -> Stores -> Add new Store -> PostGIS
As seguintes opções foram utilizadas:
Workspace: queimadas Data Source Name: queimadas Description: Banco de Dados de Queimadas database: queimadas user: appqueimadas max connections: 16 fetch size: 5000 Loose bbox: true Estimated Extents: true encode functions: true Support on the fly geometry simplifictaion: false
7. Criar estilos para as camadas:
Data -> Styles -> Add a new style
Estilo Situação Atual:
Name: Situacao Atual Workspace: queimadas
Colar o seguinte texto na área de texto:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>Situacao Atual</Name>
<UserStyle>
<Title>Situacao Atual</Title>
<FeatureTypeStyle>
<Rule>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>0</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FFEBCD</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>0</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>101</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FFC387</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>100</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>501</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FAA046</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>500</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>1001</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FA872D</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>1000</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>5001</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FA5C25</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>5000</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>25001</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#C34231</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>25000</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>count</ogc:PropertyName>
<ogc:Literal>50001</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#A21C0D</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Estilo Países:
Name: Paises Workspace: queimadas
Colar o seguinte texto na área de texto:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>Paises</Name>
<UserStyle>
<Title>Paises</Title>
<FeatureTypeStyle>
<Rule>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FFEBCD</CssParameter>
<CssParameter name="fill-opacity">0</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#FF8C00</CssParameter>
<CssParameter name="stroke-width">3</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Estilo Estados:
Name: Estados Workspace: queimadas
Colar o seguinte texto na área de texto:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>Estados</Name>
<UserStyle>
<Title>Estados</Title>
<FeatureTypeStyle>
<Rule>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#1E90FF</CssParameter>
<CssParameter name="fill-opacity">0</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#FFFF00</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Estilo Focos:
Name: Focos Workspace: queimadas
Colar o seguinte texto na área de texto:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>Focos</Name>
<UserStyle>
<Title>Focos</Title>
<FeatureTypeStyle>
<Rule>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>cross</WellKnownName>
<Fill>
<CssParameter name="fill">#FF0000</CssParameter>
</Fill>
</Mark>
<Size>8</Size>
</Graphic>
</PointSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
8. Criar as camadas:
Data -> Layers -> Add a new resource Add layer from: queimadas:queimadas
Obs.: o texto queimadas:queimadas// é a concatenação de: workspace:store//.
Iremos selecionar a opção Action: publish para as seguintes camadas:
- estados
- focos_de_2016_04_01_a_2016_05_05
- paises
Na aba Data, iremos Computar os bounding box de cada layer:
- Bounding Boxes / Native Bounding Box
- Bounding Boxes / Lat/Lon? Bounding Box
Na aba Publishing iremos:
- Na seção WMS, selecionar os estilos de cada camada
Dicas
A tabela estados possui 3496 linhas, com geometrias do tipo MultiPolygon?. Estas geometrias possuem em média 9935 vértices, sendo o total de 34.732.383 vértices. Considerando que cada vértices é formado por uma componente x e outra y, representadas por números de 8-bytes, temos um espaço de armazenamento em RAM de aproximadamente ~529.98 MiB.
SELECT SUM(ST_NPoints(geom)) AS num_pts, (SUM(ST_NPoints(geom)) * 2.0 * 8.0) / (1024.0*1024.0) FROM estados;
As geometrias (MultiPolygon?) da tabela paises, 256 linhas com cada geometria tendo em média 123.650, possuem 31.654.555 vértices, que ocupam aproximadamente ~483.01 MiB.
SELECT SUM(ST_NPoints(geom)) AS num_pts, (SUM(ST_NPoints(geom)) * 2.0 * 8.0) / (1024.0*1024.0) FROM paises;
As geometrias (Point) da tabela focos, 181.859 linhas, possuem 181.859 vértices, que ocupam aproximadamente ~2.77 MiB.
SELECT SUM(ST_NPoints(geom)) AS num_pts, (SUM(ST_NPoints(geom)) * 2.0 * 8.0) / (1024.0*1024.0) FROM focos_de_2016_04_01_a_2016_05_05;
No psql, podemos ativar a medição de tempo das operações com o seguinte comando:
\timing on
No psql, podemos redirecionar a saída das consultas para um arquivo:
\o /home/terrama2/Downloads/saida.txt
No psql, devemos alterar o alinhamento do texto produzido pela consulta:
\a
Para medir o tempo de recuperar todas as linhas de cada tabela do BDQueimadas:
\o /home/terrama2/Downloads/estados.txt SELECT * FROM estados; Time: 3733,414 ms \o /home/terrama2/Downloads/focos.txt SELECT * FROM focos_de_2016_04_01_a_2016_05_05; Time: 703,639 ms \o /home/terrama2/Downloads/paises.txt SELECT * FROM paises; Time: 4006,834 ms
