SH0088 2013

From Heureka Wiki
Jump to navigation Jump to search

Här följer instruktioner för dig som går kursen "Skogsbruksplanering" vårterminen 2013. Förutom det som står här och i andra delar av Heurekas wiki finner ni bra stöd på Heurekas hjälp-sidor: http://heurekaslu.org/help/. Föreliggande kurs går först och främst ut på att lära sig upprätta en relativt traditionell skogsbruksplan. Långsiktiga konsekvensberäkningar och scenarioanalyser ingår normalt inte i en skogsbruksplan. Heureka-momentet och användandet av PlanVis ska ses som ett komplement där ni i viss mån instrueras att använda ett datorprogram utan att till fullo förstå dess funktion. Det kommer dock finnas möjligheter senare i er utbildning att läsa kurser som fördjupar förståelsen av Heurekasystemet - om strategier för ett hållbart skogsbruk, om flermålsplanering, om optimering med hjälp av linjärprogrammering etc.

Installationsanvisningar

OBS: För att installera PlanVis så följ den här länken: http://heureka2-1.slu.se/publish/test/ClickOnce/PlanWise/setup.exe

Du installerar alltså en testversion, då du förmodligen sitter vid en studentdator för vilken du saknar administratörsrättigheter, där programmet installeras under din användarprofil. Om du vill installera PlanVis på din egen PC så gå vägen via "Download and install", men då måste du även installera en SQL Server som kan hantera all data lokalt. Från PlanVis på en studentdator kopplar du upp dig mot databaser på en riktig fjärr-SQL Server. Heureka kan köras på Mac'ar men då må man först emulera ett Windows o/s.

Skapa projekt

Det första man gör när man startat PlanVis är att skapa ett nytt projekt (eller öppna ett befintligt). Projektet innehåller användarinställningar och datasbaskopplingar. Grundregeln är att (när möjlighet ges) ge så deskriptiva namn som möjligt - på vad det än är. Att acceptera grundinställningens "ProjectX" är nog olämpligt.

Konfigurera så hera ("Windows Authentication" innebär att du loggar in i databaserna med samma uppgifter som i Windows och det är alltså redan gjort), börja att "Browsa" inställningarna för skogsdatabasen:

Servernamn
SQL1-1.SLU.SE\ALLA
Databas
Indata_SH0088_2013

Om du använder en egen PC anger du servernamn = LOCALHOST\SQLEXPRESS (eller bara .\SQLEXPRESS, förutsatt att du använder Express-versionen). Du måste i så fall först skapa en skogsdatabas (tom, eller med lite demodata, men av rätt format), lämpligen från PlanVis under menyn "Data Management".

Du ska också ange en resultatdatabas på motsvarande sätt. Om du arbetar i datasalen anger du samma servernamn men en annan databas:

Servernamn
SQL1-1.SLU.SE\ALLA
Databas
Utdata_SH0088_2013_X

OBS:Det finns två kopior av resultatdatabasen ("_3" resp. "_4") där ni får försöka sprida ut er så gott det går - om flera användare jobbar mot en och samma resultatdatabas samtidigt kan det bli långa svarstider. 1:an och 2:an är alltså kaputta och ska inte användas!

Om du använder en egen PC skriver du bara in ett önskat namn på resultatdatabasen - programmet skapar sedan databasen när den behövs:

Servernamn
LOCALHOST\SQLEXPRESS
Databas
MinaHeurekaResultat (eller något annat, men inga mellanslag och inga å, ä eller ö!)

Observera att programvaran för PlanVis alltid måste vara lokalt installerad på den dator som används emedan datat kan finnas antingen centralt eller lokalt. Vill man ha data lokalt måste man alltså ha programvara installerat för dylik databashantering, i detta fallet Microsofts SQL Server. Ett annat litet observandum är att Heureka tolkar LOCALHOST som din lokala PC emedan SQL Servern vill att du istället anger din PCs datornamn (som du hittar under Systemegenskaper).

Indata

Exportera och importera data

Innan ni exporterar data ur pcSkog se till att skogsbruksplanen verkligen är klar och feltestad. Använd sen pcSkogs funktion "Export till Heureka PlanVis" så skapas en .csv-fil (för beståndsregisterimport) och en shape (för import av skogskarta). Ni kan öppna och kontrollera .csv-filen i Excel - fälten/kolumnerna är separerade med semikolon. Det är dock lättare att granska indatat i PlanVis, under fliken "Initial State" - kolla så det hyfsat stämmer med skogsbruksplanens uppgifter. Mången student har försökt skylla på att Heureka räknar konstigt när det egentligen handlat om fel i indata. Försök själv att göra en vettig avverkningsberäkning på ett skogsinnehav med medelåldern 100 år och ett genomsnittligt förråd på 1 m3sk/ha. Skräp ut beror i 99 fall av 100 på skräp in.

I ert PlanVis-projekt kan ni sen via "Data Management>Import Stand Register..." importera .csv-filen, ge analysområdet ett bra namn och svara i princip "Ok" på alla följande frågor. "Import Forest Map..." är lite knöligare då shape'ns polygoner ska kopplas ihop med registrets bestånd. Använd förhandsgranskningsfönstren så ni ser att det stämmer (även om sorteringen är lite olika i de två fönstren). Komihåg Heurekas Help-sidor.

Skapa skötselprogramalternativ

Läs igenom nedanstående men gör ingenting då ni kommer att hämta och fortsättningsvis använda ett fördefinierat PlanVis-projekt.

Skapa domäner (dela in skogen i skötselgrupper)

En skogsdomän är en grupp av bestånd som uppfyller ett eller flera villkor och som avses (simuleras) skötas på ett visst sätt. Villkoren ställs utifrån beståndens initialtillstånd. Användaren anger villkoren själv och skapar därmed sina egna skogsdomäner. Domäntillhörigheten är statisk genom föreliggande analyser - ett bestånd kan alltså inte "växa in" i en annan domän än den initiala under den "pågående planeringshorisonten". I början av en analys indelas varje bestånd i en (och endast en) skogsdomän. Domänerna ställs upp i prioritetsordning och utvärderas därefter, så att den domän som står överst utvärderas först. Man kan enkelt ändra i ordningen. Om enheten inte tillhör den första domänen kontrolleras nästa domän, osv. Det finns alltså inga problem med att domäner faktiskt kan överlappa varandra. Den sista domänen är en "restdomän". Denna har inga villkor utan inkluderar alla enheter som inte hamnat i annan domän. Det finns alltså heller inga problem med att ställda villkor "glappar".

Definiera kontrollkategorier ("skötseldirektiv")

En kontrollkategori utgörs av att antal kontrolltabeller. Genom dessa styr man, bland annat, vilka åtgärder som ska simuleras och hur de ska utföras. Genom att skapa en eller flera kontrollkategorier för varje skogsdomän, kan man differentiera skötseln över de olika skogsdomänerna. Genom en kontrolltabell av typen "Treatment Program Generator" styr man vilka åtgärder som ska simuleras och till viss del tidpunkter för dessa. Genom en kontrolltabell av typen "Treatment Model" styr man hur åtgärderna ska simuleras (utföras). Användaren definierar egna kontrollkategorier och till dessa lägger till de kontrolltabeller som avses editeras. Man behöver alltså bara lägga till de tabeller som man avser ändra i - om man annars nöjer sig med grundinställningarna så läser systemet dessa från default-kontrollkategorin om de inte finns i den användardefinierade kategorin.

Som synes finns en "Default Domain Settings" som innehåller en kontrolltabell "Nature Conservation". Med hjälp av denna kan användaren simulera den naturvårdshänsyn som avses tas, i praktiken oftast i samband med slutavverkning. Det kan simuleras två sorters hänsyn: "NC-delar", större eller mindre hänsynsområden, som lämnas till fri utveckling och "Tree Retention", lämnande av s.k. naturvårdsträd (eller "evighetsträd", som varken i modellvärlden eller i praktiken ytterst sällan får stå i evighet).

Koppla kontrollkategorier med skogsdomäner

Detta steg är i sin grundform enkelt, gör bara såhär: höger-klicka det skogsdomän till vilken det ska kopplas en användardefinierad kontrollkategori, välj "Edit Control Category Connection..." och markera kontrollkategorin som ska användas för generation 1 (den innevarande skogen) och för generation 2 (alla efterkommande skogar) och tryck "Ok". Om man väljer att koppla flera olika kontrollkategorier till ett och samma domän finns möjligheten att i optimeringsmodellen införa en restriktion som säkerställer att vissa skogar alltid sköts med en viss skötsel.

Istället för ovanstående tre delmoment, hämta hem det zippade PlanVis-projektet "SH0088_2013" från: ftp://salix.slu.se/download/Heureka/SH0088%202013/. Ta samtidigt med .hops-filen, den optimeringsmodell som ni ska använda och som jag inte är säker på att den medföljer zippen. I PlanVis använder ni sedan funktionen "File>Import Project" för att packa upp och starta det fördefinierade projektet.

Låt systemet beräkna skötselprogramalternativ

I det fördefinierade projektet ska ni sen, under fliken "TPG Settings", kunna konstatera att det finns en skogsdomänindelning och kontrollkategorier som kopplats till respektive domän. Konstatera att eran (och endast eran) importerade skogsbruksplan/skogsfastighet är vald i fönstret "Analysis Area" (kolla under fliken "Initial State"). Välj sedan "Action>Generate Treatment Programs...". I den dialogruta som följer kan användaren namnge skötselprogramuppsättningen, välja kalkylräntan, ange längden på aktuell planeringshorisont (21 femårsperioder ger en 100-årig planeringshorisont då man använder periodmitt - som ni ska göra), och max antal alternativa skötselprogram per bestånd och vilka resultatvariabler som ska tas med i prognoserna. Betänk att ytterligare resultatvariabler än grundinställningens både tar plats (i resultatdatabasen) och tid (vid skötselprogramgenereringen) så ta bara med de viktiga, förmodligen räcker tillvalet "Data per Species>Before>Volume" långt. Sen är det bara att starta skötselprogramgenereringen.

Optimering

Formulera modell och lös problem

Föreliggande moment består i att med hjälp av matematisk optimering, LP (Linear Programming) resp. MIP (Mixed Integer Programming), välja ut ett skötselprogram (av de många vi nyss skapade) för varje bestånd - där valet alltså faller på det program som i sammanhanget är mest måluppfyllande.

Öppna modellen "Max nuvärde med ransoneringsregel", kompilera och lös optimeringsproblemet (välj först eran uppsättning alternativa skötselprogram) och spara resultatet under ett lämpligt namn. Denna del gick tvivelsutan alldeles för fort - optimering och linjärprogrammering kan man ägna dagar/månader/år åt. Men acceptera det för tillfället och se fram emot senare kurser. Den som vill får givetvis fördjupa sig i optimeringsdelen, ett tips om du prova på att linjärprogrammera är att kopiera syntax från befintliga variabler och restriktioner till egendefinierade, liknande sådana och bara ändra på det man är ute efter. Röd pil markerar målfunktionen, som kan maximeras (grundinställt) eller minimeras. Att den enda inkluderade restriktionen (utöver maxArea - som är en nödvändig teknikalitet för att inte räkna samma areal flera gånger) avser Skogsvårdslagens ransoneringsregel, för brukningsenheter över 50 ha och under 1000 ha, framgår väl med all önskvärd tydlighet?

Analysera resultat

Beakta era resultat under fliken "Optimization Results". Härunder under under-fliken "Tables and Graphs" ska du se till att hämta hem fördefinierade rapportmallar, tryck på knappen "Download default templates" och använd dessa för att få fram både diagram och tillhörande datamatris. Diagrammen är främst för förhandsgranskningar, normalt kopieras datamatrisen (högerklicka och välj "Copy all") för att sen klistras in i Excel. Här kan man dels göra snyggare diagram (se figur 1, en s.k. avverkningsprofil) och ytterligare bearbetningar som ökar förståelsen för resultaten. T.ex. i figur 2 ses att den genomsnittliga årsavverkningen är 5.8 m3sk/ha o. år, vilket kan jämföras med genomsnittlig tillväxt (och vilket är en avsevärt rimligare avverkningstakt än t.ex. än 0.58 m3sk/ha o. år och 58 m3sk/ha o. år).

Figur 1
Figur 2