REM Inserimento nel mapset PERMANENT delle mappe pendenza esposizione REM g.mapset m=PERMANENT g.region rast=uds_cod1 res=10 r.mask -r r.mask rast=uds_cod1 r.slope.aspect e=DEM slope=pend aspect=espos format="percent" --o REM REM Inizializzazione procedura REM g.mapset m=capriolo -c g.region rast=uds_cod1 res=10 r.mask rast=uds_cod1 REM REM idoneità FUZZY relativa al suolo REM REM Creo un dato raster con il Corine Land Cover con tipi forestali al 4/5 livello v.to.rast input=clc@PERMANENT output=clc_idoneita use=attr attribute_column=uso_cod --o r.reclass i=clc_idoneita o=idoneita1000 rules="D:\GeoDati\script\idoneita\capriolo_id.txt" --o r.mapcalc e="FuzzyIdoneita=float(idoneita1000)/1000" --o REM REM Idoneità Fuzzy pendenza CAMBIARE IN FUNZIONE DELLA SPECIE REM r.mapcalc e="fuzzyPend=graph(pend,0,1,20,1,40,0,999,0)" --o REM REM Idoneità Fuzzy esposizione CAMBIARE IN FUNZIONE DELLA SPECIE REM r.mapcalc e="fuzzyEsp=if(pend>0.1,graph(espos,0,0,140,1,240,1,360,0),0.5)" --o REM REM Calcolo criterio FUZZY idoneità relativa al biotopo CAMBIARE IN FUNZIONE DELLA SPECIE REM r.mapcalc e="FuzzySuolo=(FuzzyIdoneita+fuzzyPend+fuzzyEsp)/3" --o REM REM Calcolo biopermeabilità REM 50 ha = 79 pixel home range REM r.neighbors i=FuzzySuolo o=FuzzyPerm size=79 -c --o r.mapcalc e="fuzzyHabitat=graph(FuzzyPerm,0,0,0.6,1,1,1)" --o REM REM Frammentazione REM REM aggrego secondarie e locali r.patch i=StraSec,StraLoc o=SecLoc --o REM Calcolo le distanze REM r.grow.distance i=AutoStra d=distAuto --o r.grow.distance i=SuperStra d=distSuper --o r.grow.distance i=StraPrin d=distPrin --o r.grow.distance i=SecLoc d=distSec --o REM REM Fuzzy REM REM Nel calcolo del valore fuzzy debbo considerare i valori nulli, che altrimenti nella REM aggregazione annullerebbero il risultato. REM essendo i valori nulli sono relativi a due casi: (a) fuori dal confine dell'area di studio REM (b) tipo di strada non presente nell'area di studio REM in entrambi casi non si ha impatto, quindi viene attribuito il valore 1 REM CAMBIARE coefficienti fuzzy IN FUNZIONE DELLA SPECIE r.mapcalc e="fuzzyAuto=if(isnull(distAuto),1,graph(distAuto,0,0,90,0,130,1,9999,1))" --o r.mapcalc e="fuzzySuper=if(isnull(distSuper),1,graph(distSuper,0,0,70,0,180,1,9999,1))" --o r.mapcalc e="fuzzyPrin=if(isnull(distPrin),1,graph(distPrin,0,0,60,0,140,1,9999,1))" --o r.mapcalc e="fuzzySec=if(isnull(distSec),1,graph(distSec,0,0,30,0,60,1,9999,1))" --o REM REM Aggrego con l'operatore minimo REM r.mapcalc e="FuzzyImpact=min(min(fuzzyAuto,fuzzySuper),min(fuzzyPrin,fuzzySec))" --o REM REM Calcolo vocazionalità con aggregazione sul valore minimo fra habitat e impatto REM r.mapcalc e="fuzzyVocaz=min(FuzzyImpact,fuzzyHabitat)" --o REM REM End