Tag Archive | GeoNode

GeoNode

Igår testade jag OpenGeo Suite från Boundless, vilket var väldigt enkelt att få igång, så idag tänkte jag testa GeoNode för att se vilka större skillnader man stöter på med den här installationen. Läs mer…

GeoNode ”FTW”

För ett litet tag sedan så hade jag en artikel med uppdateringar av Boundless OpenGeo Suite, där jag gav ganska mycket beröm till samlingen servertjänster som ger tillgång till massor av GIS-funktionalitet för såväl desktopanvändare som webbtjänster. Jag avslutade med att nämna att OpenGeo Suite kombinerat med GeoNode kan vara den optimala Open Source lösningen för allt Server GEO.

Nu när det snart är dags för en ny GeoNode version (kanske redan släppts när du läser detta) så tänkte jag testa en GeoNode installation på samma sätt som OpenGeo Suite tidigare. Mot slutet så blir det en sammanfattning och ett utlåtande, som sannolikt är positivt även i det här fallet. Läs mer…

GeoNode 2.4

Då finns så GeoNode 2.4 i skarp version för nedladdning.

sudo add-apt-repository ppa:geonode/stable
sudo apt-get update
sudo apt-get install geonode
sudo geonode-updateip 127.0.0.1
geonode createsuperuser

Allt installeras på en (engelsk) installation av Ubuntu Server 14.04 LTS och IP adressen ovan byts mot den faktiska.

Skärmbild från 2015-11-21 10:18:15Det är inte svårare att skapa grunden för en geo-portal för framför allt intern användning inom en organisation.

Du behöver som jag nämnt tidigare se över en del inställningar, så som rättigheter i PostGIS/PostgreSQL och säkerhet i GeoServer innan systemet tas i full drift, men på http://geonode.org så finns väldigt bra instruktioner för bland annat detta och jag har även många tidiga artiklar om GeoNode.

Vill du använda GeoNode för att publicera kartor i en befintlig webb-portal så är det inte heller särskilt krångligt, men lite krångligare blir det om du vill anpassa portalen och göra den helt egen. Även för detta finns det instruktioner på geonode.org. Detta blir aktuellt inte minst om du vill skapa en publik geoportal på Internet.

Några exempel på portaler som är byggda på GeoNode:

FN World Food Programme
MapStory

Vad kan jag göra

Varför gillar jag GeoNode? För denna artikel så har jag:

  1. Installerat Ubuntu Server 14.04
  2. Installerat GeoNode (kommandon ovan)
  3. Loggat in på portalen och klickat på ”Kartor” och ”Skapa en ny karta”
  4. Panorerat och zoomat, klickat på ”Export Map”
  5. Klistrat in genererad kod (HTML en rad).

Skärmbild från 2015-11-21 10:36:34

I kartan går det att växla mellan olika grundkartor, skriva ut, mäta, med mera. Det går till och med att växla till 3D (om man har Windows eller Mac).

Jag har svårt att se hur det kan bli enklare att lägga till en karta på en befintlig hemsida.

GeoNode fungerar utmärkt med befintliga GIS strukturer då den är helt fristående. ArcGIS eller QGIS spelar ingen roll. Om du däremot vill så kan du integrera såväl PostGIS databasen och GeoServer med din befintliga QGIS infrastruktur inte minst med tillägget ”GeoServer Explorer” som snart släpps officiellt.

Meranvändning

GeoNode är främst en geoportal, men kan även hantera dokument i många olika format.

Skärmbild från 2015-11-21 11:00:02.png

Det går att ladda upp och sätta attribut på massor av filer, vilket gör dessa sökbara och möjliga att länka till och från kors och tvärs i portalen. GeoNode blir därmed även en Document Management Server (DMS) som på många sätt kan hantera dokument minst lika bra som exempelvis Microsoft SharePoint.

GeoNode 2.4 RC1

Det finns ingen ursäkt längre för exempelvis våra kommuner att inte publicera öppna kommundata som lager och som karttjänster på kommunens hemsida!

Det har tagit lite tid, men nu är det en ny release av GeoNode på gång.

Jag har berört GeoNode flera gånger tidigare, dock inte väldigt uttömmande, men det kan vara på sin plats att redogöra lite för vad GeoNode är.

GeoNode är en geodataportal som är framtagen för utveckling av webbaserade karttjänster. Det ingår en massa OGC ”godsaker” när man installerar som:

  • PostGIS – geodatabas
  • GeoServer – publicera OGC tjänster
  • pyswc – metadatakatalog
  • Open Layers – skapa webbkartor
  • GeoExt – mer avancerade GIS-tjänster för Open Layers

Dessutom följer det med massor av pythonstöd för hantering av geodata i skript etc.

GeoNode använder JavaScript och DJANGO vilket bland annat gör det möjligt att relativt smidigt bygga eller integrera ”appar” i portalen.

Bootstrap och JQuery används också för att skapa ett modernt och responsivt gränssnitt.

Installation

Det är faktiskt exakt så enkelt att installera som det står på http://geonode.org. Se till att ha en Ubuntu Server 14.04 uppe och skriv in:

sudo add-apt-repository ppa:geonode/testing
sudo apt-get update
sudo apt-get install geonode
geonode createsuperuser
sudo geonode-updateip 127.0.0.1

På sista raden så byter du ut ”127.0.0.1” till serverns IP-adress.

Det går att installera på OS X och Windows också, men då får man läsa lite mer installationsanvisningar på hemsidan, men varför skulle man inte vilja använda Linux?

Om man inte vill göra mängder av anpassningar av funktion och gränssnitt, så är det sedan bara att öppna en webbläsare och peka på servern:

Skärmbild från 2015-10-24 11:34:41Det går att logga in med den skapade superanvändaren och sedan lägga upp fler vanliga användare.

Skärmbild från 2015-10-24 11:37:32Du kommer åt admin-gränssnittet genom att klicka på din avatar när du är inloggad. Som framgår av bilden ovan så går det inte att använda svenska tecken i användarnamn, men gränssnittet för administration är formulärbaserat och faktiskt ganska simpelt att förstå och komma igång med.

Ladda upp data och skapa kartor

Skärmbild från 2015-10-24 11:42:54För användare så är det lika simpelt (fast lite snyggare) att ladda upp data och skapa lager och kartor baserade på dessa data.

Skärmbild från 2015-10-24 12:06:18Man behöver lite vana vid miljön, men det är egentligen barnsligt enkelt att hantera lager och skapa webbkartor med GeoNode. Med GeoExt så genererar man en kod som man kan bädda in på valfri hemsida som kan hantera taggen <iframe>.

Oavsett om du använder QGIS, ArcGIS, GeoMedia, Infographics eller vad nu ditt GIS heter så kan du nu ladda upp lager och publicera dessa i en anpassad webbkarta! Det finns ingen ursäkt längre för exempelvis våra kommuner att inte publicera öppna kommundata som lager och som karttjänster på kommunens hemsida! En instruktion för hur du ansluter GeoNode till ArcGIS, QGIS och Google Earth finns på hemsidan (länk).

Extra finesser

Så här långt så har det inte spelat någon roll hur den befintliga GIS miljön ser ut för att använda GeoNode, då all hantering sköts internt i servern. Alla data laddas upp via webbgränssnitt och publiceras med stöd av formulär och länkar.

Vill, och kan man så finns det dock en hel del muskler under skalet på GeoNode. PostGIS är exempelvis en perfekt bas för lagring och bearbetning av geodata, förutsatt att det GIS-program man använder stödjer PostGIS. GeoNode är inte riktigt byggt för att hanteras såhär, men det går.

Det går dessutom att använda WMS/WFS tjänster (m.fl.) från GeoServer direkt i GIS program, som då stödjer anslutning av dessa (vilket de flesta gör). Det är detta som är den rekommenderade metoden för att hantera data bakom webbgränssnittet, vilket blir väldigt enkelt med exempelvis QGIS och tillägget OpenGeo Explorer.

När man väl fixat allt detta så kan man exempelvis använda OpenGeo Explorer i QGIS för att hantera det mesta när det gäller geodata på servern. Där finns exempelvis möjlighet till direkt koppling till samtliga större komponenter på servern (PostGIS, GeoServer, stilar, GeoNode).

Skärmbild från 2015-10-24 13:27:09Om man har lokala data i exempelvis shape-format i QGIS så är det inte svårare än att högerklicka och välja ”Publish to GeoServer…”, så är det klart (det fungerar inte med svenska tecken i sökvägen).

Skärmbild från 2015-10-24 13:36:17Ett nytt högerklick från GeoServerkatalogen borde sedan publicera till GeoNode, men jag får bara fel. Däremot så kommer nedanstående kommando på servern att uppdatera lagret så att det går att komma åt i servern.

sudo geonode updatelayers

Vill man skräddarsy och anpassa utseendet på portalen så får man också göra lite justeringar på servern, men här går det att gena lite genom att exempelvis använda färdiga css filer för Bootstrap från Internet.

Synpunkter

GeoNode imponerar verkligen och om det som sagt inte finns ett omedelbart behov av komplett integration med befintlig GIS-infrastruktur, så tar det inte många minuter att ha en portaltjänst uppe för exempelvis publicering av öppna geodatatjänster.

Som vanligt så behöver man göra en del justeringar innan man tar ett system i drift, inte minst med alla säkerhetsaspekter och man behöver tänka igenom vad man vill göra och vilka restriktioner man vill lägga på hanteringen av data. Det finns dock väldigt bra instruktioner för allt detta på hemsidan (länk).

Det finns ett ganska ordentligt språkstöd i GeoNode och svenska är ett av de valbara språk man kan använda. Det är dock inte en helt klockren översättning överallt, men som vanligt med öppen källkod så kan man engagera sig och fixa det själv om man har synpunkter. Det går säkert även att hitta någon som är beredd att göra det åt dig mot betalning.

GeoNode – Något nytt?

Om du söker på bloggen så kommer du att hitta flera inlägg om GeoNode. Det är en Geo-Portal som kan hantera såväl geodata som geodatatjänster via standardiserade gränssnitt. Det finns även plug-in i QGIS för att sköta mycket av konfiguration och publicering direkt. Annars är det fullständigt möjligt att sköta allt via en webbläsare.

Nyligen så gick Boundless ut med ett meddelande om att man är ”excited to announce” sitt engagemang i GeoNode projektet… Tja det var ju Boundless som mer eller mindre skapade GeoNode runt 2010, så de borde väl vara ganska engagerade?

GeoNode är en fantastisk plattform för att skapa, hantera och dela kartor och geodata mellan individer och klienter i ett nätverk.

Åter till sakfrågan. Det är ungefär ett år sedan 2.0 släpptes och 2.0.1 kom i höstas, så Boundless meddelande kanske är en föraning om att en ny version är på gång. Redan i Februari testade jag betaversionen av 2.4 och då lät det som att en release var nära förestående. På GitHub finns nu 2.4b25, så helt perfekt har nog inte arbetet gått.

Skärmbild från 2015-05-05 19:04:09Ett av problemen jag upplevde i Februari var att det var strulade med att ladda upp shapefiler. Det är nu inga problem att ladda upp oprojicerade filer i WGS-84. När jag provade något udda lager så sa datorn ifrån att det inte var just WGS-84, men det gick bra att ladda upp ett lager i SWREF99TM utan att datorn klagade.

Skärmbild från 2015-05-05 19:17:00När jag laddat upp kommundata så märkte jag att jag glömt att ändra till Latin-1 som teckenkodning och det enda jag hittade i lagerinställningarna var ”Språk”, och där gick det inte att välja Svenska… Var noga med att välja rätt kodning från början med andra ord.

Skärmbild från 2015-05-05 19:30:06En kul grej med portalen är att den lilla Leaflet karta som finns som översikt, egentligen är ett geografiskt filter. I listan med kartor eller skikt visas bara de lager som har data i det område som visas i översikten.

Det är inga problem att installera GeoNode (se tidigare inlägg) och med några små justeringar på servern så kan man koppla upp sig direkt mot PostGIS servern också om man vill, från såväl QGIS som PgAdminIII. Även GeoServern går att nå direkt via port 8080.

Via GeoServern så går det att komma åt data via såväl WMS som WFS.

Jag har sagt det tidigare, och säger det igen. GeoNode imponerar!

GeoNode 2.4

Det är ett år sedan version 2.0 lanserades och det kan ju tyckas lite udda att nästa stabila version kommer att bli 2.4, men så är det.

Det är inte riktigt lanseringsdags än, så det blir ”master” som jag får testa här.

Installationen kan nu göras på Ubuntu Server 14.04, vilket var på tiden. Annars så går installationen till som tidigare, med skillnaden att man anger ”testing” i stället för ”release”:

sudo add-apt-repository ppa:genode/testing
sudo apt-get update
sudo apt-get install geonode
sudo geonode-updateip 127.0.0.1

geonode createsuperuser

Du skall byta ut 127.0.0.1 mot din egen servers IP-adress.

Sedan är det bara att peka webbläsaren mot adressen.

Screenshot from 2015-02-08 12:50:51

Det första som slår mig är att det är ett gränssnitt på svenska (om än lite knackig svenska här och där), och detta utan att jag valt det någonstans. Serverinstallationen är gjort på engelska, så detta är ett bevis på att lokalisering baserad på klient fungerar i 2.4. Dessutom så finns betydligt fler språkinställningar tillgängliga än tidigare. Hur skulle det vara med lite persiska?

Screenshot from 2015-02-08 12:54:30

Något annat jag lägger märke till är att såväl Leaflet som OpenLayers används i portalen, lite beroende på vad syftet är. Ganska intressant med hänsyn till mitt tidigare inlägg om just Leaflet vs OpenLayers.

För att ladda upp data så är det lite skakigt i denna förhandsutgåva. Jag har i alla fall problem med att ladda upp shapefiler över huvudtaget. Jag får bara felet ”Shapefile Reader requires a shapefile or file-like object.” hela tiden.

Jag anar att det är ett Pythonproblem med exempelvis ”shapefile.py”, och att samtliga filer jag testat har en inställning som skriptet inte kan fånga upp, vilket därmed ger felet.

Rasterdata i GeoTIFF gick däremot jättebra att ladda upp och använda.

Nåja, man känner igen sig och ju närmare release vi kommer desto stabilare hoppas jag att det blir, men lite märkligt är det att det inte går att ladda upp shapefiler…

För mer tips om anpassning och test så kan du läsa tidigare inlägg:

GeoNode på Geosupportsystem

Mera GeoNode

Screenshot from 2014-09-07 15:21:42

Nu har jag testat lite till och allt är inte perfekt men jag är mer och mer övertygad om att GeoNode installationen som jag beskrev igår är en väldigt gångbar lösning för en generell geodataportal.

Först och främst så går det i QGIS att skapa eller ladda upp data direkt till PostGIS databasen på GeoNode-servern.

Det går med OpenGeo Explorer att ansluta till GeoServern och publicera såväl lager som hela QGIS-projet direkt.

Tyvärr så fungerar inte funktionen ”Publish to GeoNode” men det är nog bara en tidsfråga för Boundless att fixa detta. Under tiden så kan man köra ett kommando på GeoNode-servern:

sudo geonode updatelayers

Vilket läser in alla lager från GeoServern och uppdaterar biblioteket i portalen. Sedan är det bara att redigera metadata för dessa lager och skapa kartor som man kan publicera.

De lager man lägger upp på servern går dessutom att redigera via en webbläsare. Man kan såväl ändra, lägga till och ta bort objekt som redigera attribut, allt via GeoExplorer så länge man är inloggad och har rättigheter att göra så.

Screenshot from 2014-09-07 15:32:52

Detta kan ju vara ett smidigt sätt att uppdatera data i fält från en surfplatta eller telefon. Ändringarna är dessutom omedelbara för det berörda lagret.

Anpassa gränssnittet

Vill man så kan man ganska enkelt göra förändringar i gränssnittet. Detta görs genom att hämta och modifiera ”templates” med exempelvis stilmallar (css).

På servern så görs följande:

django-admin startproject my_geonode --template=https://github.com/GeoNode/geonode-project/archive/master.zip -epy,rst
sudo pip install -e my_geonode
mv my_geonode/local_settings.py.sample my_geonode/local_settings.py

Ersätt ”my_geonode” med ett eget namn och sökväg. Använd inte just ”geonode” vilket kommer att leda till konflikter i systemet.

Redigera filen local_settings.py och anpassa raderna med SITENAME och SITEURL så att de passar för ditt system.

Ändra även i filen /etc/apache2/sites-available/geonode på raden WSGIScriptAlias så att den pekar på din lokala fil:

WSGIScriptAlias / /sökväg/till/geonode/template/wsgi.py

Stara om Apache servern:

sudo service apache2 restart

I den template mapp som skapats så finns bland annat en tom css-fil (site_base.css) som kan redigeras för att ändra det standardutseende som används i portalen. Jag letar efter de ”classer” jag vill ändra med hjälp av Firebug i Firefox, men det finns även hjälp att få via nätet.

För att ändringarna skall slå igenom så måste man köra ett kommando på servern:

python manage.py collectstatic

För att slippa redigera i terminalen på servern så kan man exempelvis installera Samba och dela ut templatekatalogen på nätverket. Kommandon på servern kan sedan göras via exempelvis SSH.

Som framgår av bilden överst så har jag ändrat på några standardfärger vilket är hur enkelt som helst att göra via stilmallen.

Slutligen

Glöm nu inte att det finns mer man måste göra på servern innan man tar den i drift på exempelvis Internet. GeoServern måste säkras, användare skall ses över och rättigheter på utdelade kataloger sättas, med mera.

Risken med denna typ av kompakta installationer är ju annars att man lätt glömmer bort sådant: ”Vadå? Jag har inte installerat GeoServer eller någon databas!”