Tag Archive | Databas

PostGIS 2

Då var det dags för lite ”hard core”. Det blir mycket terminalfönster och kompilering av källkod med mera, men låt inte det skrämma dig utan följ noga beskrivningen så skall du snart ha en geodatabas med såväl rasterdatastöd som möjlighet att hantera topologier.

Jag kan direkt erkänna att grunden i instruktionen har hämtats från lite blandade källor på nätet och jag vet inte exakt vad allt gör, eller om allt behövs för det är ganska många steg som skall utföras. Det jag vet är att det fungerar, och det är väl det som är det viktiga.

Som vanligt så är utgångsläget Ubuntu Server 12.04 LTS. Jag testar alla installationer på virtuella servrar med Oracle VM VirtualBox, vilket kan vara något även för dig som inte har en dedikerad dator att installera Ubuntu på. Bara för att man kör Windows så behöver man inte känna sig handikappad;-).

Först och främst det som krävs för att PostGIS2 skall fungera.

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:sharpie/for-science
sudo apt-add-repository ppa:sharpie/postgis-stable
sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-add-repository ppa:olivier-berten/geo
sudo apt-get update

Skriv sedan in nedanstående på en enda rad och vänta på att det skall installeras.

sudo apt-get install build-essential postgresql-9.1 postgresql-server-dev-9.1 libxml2-dev proj libjson0-dev xsltproc docbook-xsl docbook-mathml gettext postgresql-contrib-9.1 libgdal-dev

Då skall vi ha allt som behövs för att installera PostGIS 2.

sudo apt-get install postgresql-9.1-postgis2
wget http://download.osgeo.org/postgis/source/postgis-2.0.2.tar.gz
tar xfvz postgis-2.0.2.tar.gz
cd postgis-2.0.2
./configure
make
sudo make install
sudo ldconfig
sudo make comments-install
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/shp2pgsql
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/pgsql2shp
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/raster2pgsql

Sedan är det dags att fixa lösenord för postgres användaren i servern och i postgresql.

sudo passwd postgres

Ange nytt UNIX lösenord

sudo -s -u postgres psql
\password postgres

Ange nytt Postgreslösenord för användaren postgres.

\q
sudo vi /etc/postgresql/9.1/main/postgresql.conf

Som tidigare ändras #listen_addresses = ‘localhost’ till serverns IP (ta även bort #).

sudo vi /etc/postgresql/9.1/main/pg_hba.conf

Lägg till serverns IP-adressrymd under # IPv4 … raden i filen. (ex: host all all 192.168.0.1/24 md5).

Skapa tillägg för PostGIS och Topologi i PostgreSQL:

sudo -s -u postgres psql
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
\q

Då skall bara malldatabasen skapas, vilket sker med ett antal olika SQL skript. Det är denna ”template” som senare används för att skapa nya PostGIS databaser.

sudo -u postgres createdb template_postgis
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/spatial_ref_sys.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis_comments.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/rtpostgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/raster_comments.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology_comments.sql
sudo /etc/init.d/postgresql restart

Pust!!! Resten kan göras i PgAdmin III på en klient i nätverket och skiljer sig inte från det förra inlägget om PostGIS.

OK, du har testat PostGIS 1.5, men är inte nöjd. Du vill ha rasterdata och topologier med allt det senaste.

Med nedanstående instruktion kan du installera PostGIS 2.0.2 på en Ubuntu Server. Jag kan direkt erkänna att grunden i instruktionen har hämtats från lite blandade källor på nätet och jag vet inte exakt vad allt gör, eller om allt behövs för det är ganska många steg som skall utföras. Det jag vet är att det fungerar, och det är väl det som är det viktiga.

Först och främst det som krävs för att PostGIS2 skall fungera.

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:sharpie/for-science
sudo apt-add-repository ppa:sharpie/postgis-stable
sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-add-repository ppa:olivier-berten/geo
sudo apt-get update
Skriv sedan in nedanstående och vänta på att det skall installeras.
sudo apt-get install build-essential postgresql-9.1 postgresql-server-dev-9.1 libxml2-dev proj libjson0-dev xsltproc docbook-xsl docbook-mathml gettext postgresql-contrib-9.1 libgdal-dev
Då skall vi ha allt som behövs för att installera PostGIS 2.
sudo apt-get install postgresql-9.1-postgis2
wget http://download.osgeo.org/postgis/source/postgis-2.0.2.tar.gz
tar xfvz postgis-2.0.2.tar.gz
cd postgis-2.0.2
./configure
make
sudo make install
sudo ldconfig
sudo make comments-install
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/shp2pgsql
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/pgsql2shp
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/raster2pgsql
Sedan är det dags att fixa lösenord för postgres användaren i servern och i postgresql.
sudo passwd postgres
Ange nytt UNIX lösenord
sudo -s -u postgres psql
\password postgres
Ange nytt Postgreslösenord för användaren postgres.
\q

sudo vi /etc/postgresql/9.1/main/postgresql.conf

Som tidigare ändras #listen_addresses = ‘localhost’ till serverns IP (ta även bort #).

sudo vi /etc/postgresql/9.1/main/pg_hba.conf

Lägg till serverns IP-adressrymd under # IPv4 … raden i filen. (ex: host all all 192.168.0.1/24 md5).

sudo -s -u postgres psql

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
\q
sudo -u postgres createdb template_postgis
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/spatial_ref_sys.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis_comments.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/rtpostgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/raster_comments.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology_comments.sql

sudo /etc/init.d/postgresql restart

Pust!!! Resten kan göras i PgAdmin III på en klient i nätverket och skiljer sig inte från det förra inlägget om PostGIS.

[EDIT]

Det verkar som en del av texten försvinner i högermarginalen. Vet inte vad det beror på men undersöker om det går att åtgärda.

Tills vidare så finns hela texten även i kommentarsfältet om du klickar på rubriken.

Annonser

WMS, WFS och Geodatabas

Jag har länge använt såväl WMS och WFS som Geodatabaser i mina GIS-lösningar och jag är ganska väl medveten om skillnaderna.

WMS sänder bilder av den färdigrenderade kartan eller lagret till klienten som i stort sett bara visar denna information på skärmen. Det går att ställa frågor via WMS, men det blir som en fråga till servern som skickar ett svar på den direkta frågan (GET FEATURE INFO) på ett icke standardiserat sätt, så svaret kan se olika ut beroende på serverns inställningar. Data kan levereras i en mängd olika bildformat, men vanligt är JPG och PNG.

WFS sänder data utan symbolstilar till klienten där all information mellanlagras, vilket gör det möjligt att hantera data på i princip samma sätt som om det vore lokala data eller data i en geodatabas. Det går även att ställa frågor till datamängden direkt i klienten. Genom att använda så kallade Transaktioner så går det även att redigera data via WFS-T. Nackdelen är att om det är stora datamängder så kan det ta tid att föra över alla data, inte minst om det är en begränsad bandbredd.

Geodatabaser som PostGIS/PostgreSQL hanterar data mycket mera transparent för klienterna och tiden för uppdatering på skärmen beror inte på hur stor den totala datamängden är, utan hur många objekt det är på skärmen. Denna hantering kräver att klient och server utbyter en hel del information kontinuerligt, vilket ställer en del krav på bandbredden.

Vad skall man då välja? Läs mer…

Behöver jag en geodatabas?

Jag har i många av mina exempel använt PostGis (PostgreSql) som ”lagringsform” för mina geodata, men har väl egentligen inte funderat över om det behövs.

Svaret på frågan är sannolikt att det beror på, men vad är det som det beror på?

När man Googlar lite så blir svaret att om man har upp till något hundratal objekt i en databas så kan det vara snabbare med en PostGis databas, men om det är hundratals eller tusentals objekt så blir det snabbare med ESRI shape. Hmm, det rimmar inte riktigt med vad man skulle förvänta.

Läs mer…

Dags för lagerstilar

I ett tidigare inlägg visade jag hur man skapar och lagrar data i en PostGIS databas. I slutet på det inlägget nämnde jag att det skulle bli ett nytt inlägg om hur man snyggar till presentationen av dessa lager lite senare. Nu har tiden kommit för detta inlägg.

Först och främst skall vi nämna att OpenGeo Suite har ett ganska bra stöd för att sätta stilar på lager i GeoServer inbyggt i gränssnittet. Under ”Layer Preview” så finns en kolumn med länken ”Styler”, genom att klicka på denna länk så kan man visuellt redigera lagren i ett nytt gränssnitt. Läs mer…

Ett enkelt lager i GeoServer med PostGIS databasen

Tidigare har jag gått igenom hur man sätter upp en GeoServer med OpenGEO Suite och även visat på en installation av detta på Ubuntu Server. Nu skall jag försöka visa hur du kan sätta upp en GIS tjänst med data från din egen PostGIS databas.

Läs mer…

PostGIS administration

När jag installerat Ubuntu Servern med OpenGEO Suite så ställdes jag inför ett litet problem som jag tänkte dela med mig av lösningen på. Eftersom Ubuntu Server inte har något användargränssnitt så ville jag ansluta med pgAdmin3 via nätverket för att administrera mina databaser. Detta stötte på problem då jag helt enkelt inte kunde ansluta via nätverket.

Läs mer…

Allt i ett lösning…

Jag sitter här på Nationaldagen med datorn i knät och trixar lite med GeoServer och Google Earth. Det går framåt och det blir nog ett inlägg lite senare. Hur som helst, i sökandet efter information så hittade jag en länk till OpenGeo Suite som är en samling med de program som jag ofta använder, men i ett paket med en ”installer” för såväl Windows som OS X och Linux.

Sviten innehåller förutom GeoServer även PostgreSQL med PostGIS samt några komponenter till, så det enda som egentligen behövs för att testa det jag beskriver i Gratis GIS är Quantum GIS och/eller uDig.

Läs mer…