Hur hanterar man bäst data om man vill dela dessa öppet, versionshantera på ett bra sätt samt låta andra redigera och föreslå uppdateringar?
Varför inte GitHub?
Metoden är ”distribuerad”, det vill säga ingen hanterar data direkt vid källan. All visning av data eller redigering görs lokalt i en instans, eller version av källan.
Det finns två sätt att använda källdata. Antingen så ”kopierar” man en version av källan för att använda data lokalt, eller så ”klonar” man källan vilket gör det möjligt att föreslå uppdateringar av källan.
Data lagras i ett ”repository” på GitHub. Det kan vara shapefiler eller GeoPackage, tiff eller vilket filformat som helst. Här får man automatiskt en nedladdningslänk för att hämta en komprimerad fil med alla data.
Denna zip-fil kan direkt läsas i QGIS (om det är shape eller geotiff), medan ArcGIS klienter får stå ut med att packa upp filen först. Det går inte att uppdatera data på GitHub på ett enkelt sätt om man hämtar data på detta sätt, så den här metoden bör ses som ”read only”.
Vill man redigera och uppdatera källdata, och därmed skapa en ny version av dessa data, så skall man i stället ”klona” källan. Det finns speciella grafiska verktyg för detta, men det går även att använda terminalen och ett ”git” kommando.
git clone https://github.com/användare/repository/
Detta skapar en kopia av innehållet från GitHub lokalt på den egna datorn. Nu kan man jobba mot dessa data som vilka lokalt lagrade data som helst.
Fördelen är att Git håller kontroll på ändringarna och kan synkronisera och uppdatera den lokala katalogen med källan på GitHub. Vill man uppdatera källan så gör man en ”push”, om man har skrivrättigheter, eller en ”pull-request” om man inte har det.
Alla som klonat repositoryt kan göra en kontroll om det skett uppdateringar och synkronisera sin lokala version med olika git kommandon.
Nackdelar
Det finns naturligtvis nackdelar med att hantera geodata på GitHub. En nackdel är att GitHub främst är gjort för att dela kod. Om det är flera som vill redigera geodatafiler så kan det uppstå problem, om dataformatet inte är ett ”textformat”.
Enskilda filer får inte vara större än 100 Mb och ett samlat repository bör inte vara större än 1 Gb.
Det går inte att redigera data direkt on-line. GitHub är inte en databas som kan hantera sekventiella läsningar och skrivningar på ett sådant sätt. Därför blir det ett extra steg för att hämta eller kopiera data till en lokal sökväg.
Allt som publiceras är transparent, även pågående redigeringar. När man trycker upp data till GitHub så är det publikt.
Fördelar
Versionshantering kommer på köpet! Det går dessutom att släppa ”officiella” versioner som blir ögonblicksbilder vid ett specifikt tillfälle. Dessa kommer att lagras och går att använda även om data i ”master” ändras, eller om nya versioner släpps.
Det behövs ingen speciell struktur eller drivrutin för att läsa data och behörigheter behöver inte heller hanteras om alla ändå skall kunna läsa dessa data. Om du skall redigera data så behöver du dock Git eller en Git-klient.
Allt som publiceras är transparent, även pågående redigeringar. När man trycker upp data till GitHub är det publikt.
Slutsatser
Det finns fler för och nackdelar med GitHub och geodata, men så länge man håller sig till begränsade datamängder som inte ändras mer än lite då och då så är det ett bra och snabbt sätt att göra data offentligt.
Har man sedan inte en egen publik server så är det ett billigt sätt att göra data tillgängliga för allmänheten.
Det finns lite bonus effekter med GitHub också eftersom man även kan skapa information om data som presenteras på ett snyggt sätt (README.md). Denna information följer med data som laddas ner i zip eller klonas lokalt.
Det finns även möjlighet att skapa Wiki-sidor för innehållet och felrapportering (issues) för att ta hand om problem som upptäcks av användarna. GitHub har flera andra inbyggda funktioner som också kan vara bra att använda.
Det är inte en ersättning för en riktig geodatabas men passar väldigt bra för att hantera och publicera små mängder versionshanterade data.
Det finns andra tjänster och servrar som använder principerna med Git för att erbjuda bättre anpassade tjänster för geodata. Vill man sätta upp en egen tjänst så kan man exempelvis titta på GeoNode, vilket är en betydligt mycket mer avancerad plattform. Andra plattformar på gång är exempelvis GeoGig (länk).