<% @ LANGUAGE="VBSCRIPT" %> <% Option Explicit 'Alla variabler måste definieras, bra för felsök Dim fs, conn, rs, sql, Lokalnamn, Parameter, i, Vattentyp, x, DB_path, Datatab, Klass1, Klass2, Klass3, Klass4, Klass5, rstab, SQLdatatab, KlassOrdn Dim StartTime, EndTime, WaitTime, rs_stat, rs_sista, rs_median1, rs_median2, Median, Avg, Min, Max, LastYear, Klass, n, Kl1, Kl2, Kl3, Kl4, Reload, Thispage Function StatValue(x) If IsNull(x) then StatValue="-" Else If x<10 then StatValue=FormatNumber(x,2) ElseIf x<100 then StatValue=FormatNumber(x,1) Else StatValue=FormatNumber(x,0) End If End If End Function Lokalnamn=request.querystring("Lokalnamn") Datatab=request.querystring("Datatab") %> Data
<% Const adLockReadOnly = 1 Const adOpenStatic = 1 DB_path="..\..\odbc\lagandata.mdb" Set fs=Server.CreateObject("Scripting.FileSystemObject") If not (fs.FileExists(Server.Mappath(DB_path)))=true Then Response.Write("Det går för tillfället inte att läsa från databasen. Förmodligen pågår uppdatering av datan. Försök igen senare eller kontakta rådet för information.") set fs=nothing Else set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open(Server.Mappath(DB_path)) set rs=Server.CreateObject("ADODB.recordset") sql="SELECT Lokalnamn FROM lokalnamn ORDER BY Lokalnamn" rs.Open sql,conn %>

Välj station : Klickbar karta över avrinningsområdet

Välj analys: <% Const adSchemaTables = 20 set rstab = conn.OpenSchema(adSchemaTables) Do While Not rstab.EOF SQLdatatab=rstab("TABLE_NAME") if NOT left(SQLdatatab,4) = "MSys" and NOT SQLdatatab="lokalnamn" then set rs=Server.CreateObject("ADODB.recordset") sql="SELECT * FROM (lokalnamn INNER JOIN " & SQLdatatab & " ON lokalnamn.nr=" & SQLdatatab & ".lokalnamn_nr)" sql=sql & " WHERE Lokalnamn='" & Lokalnamn & "'" rs.Open sql,conn If Not rs.EOF=true Then %> onclick="self.location.replace('rapport.asp?Lokalnamn=<% =Lokalnamn %>&Datatab=<% =SQLdatatab %>')"> <% response.write(Right(Replace(SQLdatatab,"_"," "),Len(SQLdatatab)-2)) End If end if rstab.MoveNext loop set rstab=Nothing if Lokalnamn="" then rs.Close set rs=Nothing %>

<% else set rs=Server.CreateObject("ADODB.recordset") sql="SELECT * FROM lokalnamn WHERE Lokalnamn='" & Lokalnamn & "'" rs.Open sql,conn Vattentyp=rs.fields(5) %>

Ladda ner data i tabellformat

<% Response.Write(rs.fields(2) & ". " & rs.fields(3) & ", " & rs.fields(4))%> <% Response.Write("Koordinater: " & rs.fields(6) & "/" & rs.fields(7) & " (RT90 2.5 gonV)")%>
.jpg"> Vattentyp: <% Response.Write(Vattentyp)%>
Delavrinningsområde: <% Response.Write(rs.fields(8))%>
Län: <% Response.Write(rs.fields(9))%>
Kommun: <% Response.Write(rs.fields(10))%>
Undersökningstyper: <% Response.Write(rs.fields(11))%>
Provtagningsfrekvens: <% Response.Write(rs.fields(12))%>
Motiv: <% Response.Write(rs.fields(13))%>
Övrigt: <% Response.Write(rs.fields(14))%>
Blå prickar Mätdata Orange linje
Gräns mellan klass 4 och 5 * <% If Datatab="A_Vattenkemi" or Datatab="B_Metaller_i_vatten" then response.write("*Tillståndsvärdena anger tillståndet enligt Bedömningsgrunder för miljökvalitet (NV rapport 4913), och kan för halter tolkas som att låga värden är bättre än höga (tvärtom för pH, alkalinitet och syre). Höga värden behöver däremot inte indikera en påverkan, utan kan förekomma naturligt.") ElseIf Datatab="E_Växtplankton" then response.write("*Tillståndsvärdena anger tillståndet enligt Bedömningsgrunder för miljökvalitet (NV rapport 4913), och kan för index och artantal generellt tolkas som att höga värden är bättre än låga. För halter och toxinbildande taxa gäller det omvända.") Else response.write("*Tillståndsvärdena anger tillståndet enligt Bedömningsgrunder för miljökvalitet (NV rapport 4913), och kan för index och artantal generellt tolkas som att höga värden är bättre än låga. Låga värden behöver däremot inte indikera en påverkan, utan kan i vissa miljöer förekomma naturligt.") End If %>
Röda prickar "Mindre-än" värden Gul linje
Gräns mellan klass 3 och 4 *
Svart linje
1-årsmedelvärde för respektive år Grön linje
Gräns mellan klass 2 och 3 *
      Blå linje
Gräns mellan klass 1 och 2 *
<% rs.close set rs=Nothing set rs=Server.CreateObject("ADODB.recordset") sql="SELECT " & Datatab & ".* FROM (lokalnamn INNER JOIN " & Datatab & " ON lokalnamn.nr=" & Datatab & ".lokalnamn_nr)" sql=sql & " WHERE Lokalnamn='" & Lokalnamn & "'" sql=sql & " ORDER BY " & Datatab & ".lokalnamn_nr, " & Datatab & ".Datum" rs.Open sql,conn If not rs.EOF then i = 4 n = 0 do until i = rs.fields.count rs.MoveFirst Parameter=rs.fields(i).name do until rs.EOF if IsNull(rs.fields(i)) then 'kollar ifall data finns för lokalen och parametern rs.MoveNext else If n MOD 2 = 0 then %>
<% End If If (Left(Parameter, 6)="Status") Then %>

<% Do Until rs.EOF If Not rs.fields(i)="" Then %> <% End If rs.MoveNext Loop %>
<% If InStr(Parameter,"syretillstånd")>0 then response.write("Klassningar av syretillstånd") ElseIf InStr(Parameter,"näringstillstånd")>0 then response.write("Klassningar av näringstillstånd") Else response.write("Påverkansbedömning/Statusklassningar (from -08) för " & Right(Parameter,Len(Parameter)-7)) End If %>
År Klass
 
<% =Year(rs.Fields(2)) %> <% =rs.Fields(i) %>
<% If InStr(Parameter,"näringstillstånd")>0 then response.write("Förklaring tillstånd: A=Näringsfattigt eller mycket näringsfattigt, B=Måttligt näringsrikt, C=Näringsrikt eller mycket näringsrikt") ElseIf InStr(Parameter,"syretillstånd")>0 then response.write("Förklaring tillstånd: A=Syrerikt eller mycket syrerikt, B=Måttligt syrerikt, C=Syrefattigt eller mycket syrefattigt") Else response.write("Förklaring påverkan: A=Ej eller obetydlig, B=Måttlig, C=Stark eller mycket stark") End If %>

<% Else set rs_sista=Server.CreateObject("ADODB.recordset") sql="SELECT MAX(YEAR(" & Datatab & ".Datum)) FROM" sql=sql & " (SELECT " & Datatab & ".Datum, " & Datatab & ".`" & Parameter & "` FROM (lokalnamn INNER JOIN " & Datatab & " ON lokalnamn.nr=" & Datatab & ".lokalnamn_nr)" sql=sql & " WHERE Lokalnamn='" & Lokalnamn & "' AND `" & Parameter & "` IS NOT NULL)" rs_sista.Open sql,conn LastYear=rs_sista.Fields(0) rs_sista.Close set rs_stat=Server.CreateObject("ADODB.recordset") sql="SELECT Avg(Abs(" & Datatab & ".`" & Parameter & "`)), Min(Abs(" & Datatab & ".`" & Parameter & "`)), Max(Abs(" & Datatab & ".`" & Parameter & "`))" sql=sql & " FROM (lokalnamn INNER JOIN " & Datatab & " ON lokalnamn.nr=" & Datatab & ".lokalnamn_nr)" sql=sql & " WHERE Lokalnamn='" & Lokalnamn & "' AND YEAR(" & Datatab & ".Datum)='" & LastYear & "'" sql=sql & " GROUP BY YEAR(Datum)" rs_stat.Open sql,conn Avg=rs_stat.Fields(0) Min=rs_stat.Fields(1) Max=rs_stat.Fields(2) rs_stat.Close ' Här börjar klassgränser '--------------------------------------------------------------------------------------- KlassOrdn="" Kl1=0 Klass="Ingen klassning" If Datatab="A_Vattenkemi" then KlassOrdn="nerbra" Select Case Parameter Case "Fosfor tot, P (µg/l)" Kl1=12.5 Kl2=25 Kl3=50 Kl4=100 Klass1="Låg halt" Klass2="Måttligt hög halt" Klass3="Hög halt" Klass4="Mycket hög halt" Klass5="Extremt hög halt" Case "Kväve tot, N (µg/l)" Kl1=300 Kl2=625 Kl3=1250 Kl4=5000 Klass1="Låg halt" Klass2="Måttligt hög halt" Klass3="Hög halt" Klass4="Mycket hög halt" Klass5="Extremt hög halt" Case "TOC (mg/l)" Kl1=4 Kl2=8 Kl3=12 Kl4=16 Klass1="Mycket låg halt" Klass2="Låg halt" Klass3="Måttligt hög halt" Klass4="Hög halt" Klass5="Mycket hög halt" Case "Abs 420/5 filtr" Kl1=0.02 Kl2=0.05 Kl3=0.12 Kl4=0.2 Klass1="Ej eller obetydligt färgat" Klass2="Svagt färgat" Klass3="Måttligt färgat" Klass4="Betydligt färgat" Klass5="Starkt färgat" Case "Färg filtr, Pt (mg/Pt l)" Kl1=10 Kl2=25 Kl3=60 Kl4=100 Klass1="Ej eller obetydligt färgat" Klass2="Svagt färgat" Klass3="Måttligt färgat" Klass4="Betydligt färgat" Klass5="Starkt färgat" Case "Turbiditet (FNU)" Kl1=0.5 Kl2=1 Kl3=2.5 Kl4=7 Klass1="Ej eller obetydligt grumligt" Klass2="Svagt grumligt" Klass3="Måttligt grumligt" Klass4="Betydligt grumligt" Klass5="Starkt grumligt" ' Omvända klassgränser: högt är bra Case "Syre, O2 (mg/l)" If Vattentyp="Sjö" then Kl1=7 Kl2=5 Kl3=3 Kl4=1 Klass5="Syrefritt eller nästan syrefritt" Klass4="Syrefattigt" Klass3="Svagt syretillstånd" Klass2="Måttligt syrerikt" Klass1="Syrerikt" KlassOrdn="uppbra" Else Kl1 = 0 Klass="Ingen klassning" KlassOrdn="" End If Case "Siktdjup med kikare (m)" Kl1=8 Kl2=5 Kl3=2.5 Kl4=1 Klass5="Mycket litet siktdjup" Klass4="Litet siktdjup" Klass3="Måttligt siktdjup" Klass2="Stort siktdjup" Klass1="Mycket stort siktdjup" KlassOrdn="special" Case "Alkalinitet (mekv/l)" Kl1=0.2 Kl2=0.1 Kl3=0.05 Kl4=0.02 Klass5="Ingen eller obetydlig buffertkapacitet" Klass4="Mycket svag buffertkapacitet" Klass3="Svag buffertkapacitet" Klass2="God buffertkapacitet" Klass1="Mycket god buffertkapacitet" KlassOrdn="uppbra" Case "pH" set rs_median1=Server.CreateObject("ADODB.recordset") sql="SELECT MAX(" & Datatab & ".`" & Parameter & "`) FROM" sql=sql & " (SELECT TOP 50 PERCENT " & Datatab & ".`" & Parameter & "` FROM (lokalnamn INNER JOIN " & Datatab & " ON lokalnamn.nr=" & Datatab & ".lokalnamn_nr)" sql=sql & " WHERE Lokalnamn='" & Lokalnamn & "' AND YEAR(" & Datatab & ".Datum)='" & LastYear & "' ORDER BY " & Datatab & ".`" & Parameter & "`)" rs_median1.Open sql,conn set rs_median2=Server.CreateObject("ADODB.recordset") sql="SELECT MIN(" & Datatab & ".`" & Parameter & "`) FROM" sql=sql & " (SELECT TOP 50 PERCENT " & Datatab & ".`" & Parameter & "` FROM (lokalnamn INNER JOIN " & Datatab & " ON lokalnamn.nr=" & Datatab & ".lokalnamn_nr)" sql=sql & " WHERE Lokalnamn='" & Lokalnamn & "' AND YEAR(" & Datatab & ".Datum)='" & LastYear & "' ORDER BY " & Datatab & ".`" & Parameter & "` DESC)" rs_median2.Open sql,conn Median=(rs_median1.Fields(0)+rs_median2.Fields(0))/2 rs_median1.Close rs_median2.Close Kl1=6.8 Kl2=6.5 Kl3=6.2 Kl4=5.6 Klass5="Mycket surt" Klass4="Surt" Klass3="Måttligt surt" Klass2="Svagt surt" Klass1="Nära neutralt" KlassOrdn="uppbra" Case Else Kl1=0 Klass="Ingen klassning" KlassOrdn="" End Select 'Metaller ElseIf Datatab="B_Metaller_i_vatten" then KlassOrdn="nerbra" Select Case Parameter Case "Cu (µg/l)" Kl1=0.5 Kl2=3 Kl3=9 Kl4=45 Case "Zn (µg/l)" Kl1=5 Kl2=20 Kl3=60 Kl4=300 Case "Cd (µg/l)" Kl1=0.01 Kl2=0.1 Kl3=0.3 Kl4=1.5 Case "Pb (µg/l)" Kl1=0.2 Kl2=1 Kl3=3 Kl4=15 Case "Cr (µg/l)" Kl1=0.3 Kl2=5 Kl3=15 Kl4=75 Case "Ni (µg/l)" Kl1=0.7 Kl2=15 Kl3=45 Kl4=225 Case "As (µg/l)" Kl1=0.4 Kl2=5 Kl3=15 Kl4=75 Case Else KlassOrdn="" Kl1=0 Klass="Ingen klassning" End Select Klass1="Mycket låga halter" Klass2="Låga halter" Klass3="Måttligt höga halter" Klass4="Höga halter" Klass5="Mycket höga halter" ElseIf Datatab="E_Växtplankton" Then KlassOrdn="nerbra" If Parameter="Potentiellt toxinbildande alger (antal släkten)" then Kl1=2 Kl2=2 Kl3=4 Kl4=4 Klass5="Stort till mycket stort antal" Klass4="Stort till mycket stort antal" Klass3="Måttligt antal" Klass2="Inga eller få" Klass1="Inga eller få" Else Select Case Parameter Case "Totalbiomassa (mg/liter)" Kl1=0.5 Kl2=2 Kl3=4 Kl4=8 Case "Vattenblommande cyanobakterier (blågrönalger) (mg/liter)" Kl1=0.5 Kl2=1 Kl3=2.5 Kl4=5 Case "Gonyostomum semen (mg/liter)" Kl1=0.1 Kl2=1 Kl3=2.5 Kl4=5 Case Else Kl1=0 Klass="Ingen klassning" KlassOrdn="" End Select Klass1="Mycket liten biomassa" Klass2="Liten biomassa" Klass3="Måttlig biomassa" Klass4="Stor biomassa" Klass5="Mycket stor biomassa" End If ElseIf InStr(Datatab,"Bottenfauna")>0 Then KlassOrdn="uppbra" Select Case Parameter Case "Shannons diversitetsindex" Kl1=3.71 Kl2=2.97 Kl3=2.22 Kl4=1.48 Case "ASPT-index" If Vattentyp="Sjö" then Kl1=6.4 Kl2=5.8 Kl3=5.2 Kl4=4.5 Else Kl1=6.9 Kl2=6.1 Kl3=5.3 Kl4=4.5 End If Case "Danskt faunaindex" If Vattentyp="Sjö" then Kl1=5 Kl2=4 Kl3=3 Kl4=2 Else Kl1=7 Kl2=6 Kl3=5 Kl4=4 End If Case "Surhetsindex" If Vattentyp="Sjö" then Kl1=8 Kl2=6 Kl3=3 Kl4=1 Else Kl1=10 Kl2=6 Kl3=4 Kl4=2 End If Case "BQI" Kl1=4 Kl2=3 Kl3=2 Kl4=1 Case "O/C-index" Kl1=0.5 Kl2=4.7 Kl3=8.9 Kl4=13 KlassOrdn="nerbra" Case Else Kl1=0 Klass="Ingen klassning" KlassOrdn="" End Select Klass1="Mycket högt index" Klass2="Högt index" Klass3="Måttligt högt index" Klass4="Lågt index" Klass5="Mycket lågt index" ElseIf InStr(Datatab,"Kiselalger")>0 Then KlassOrdn="nerbra" Klass1="Klass 1" Klass2="Klass 2" Klass3="Klass 3" Klass4="Klass 4" Klass5="Klass 5" Select Case Parameter Case "IPS (1-20)" Kl1=17.5 Kl2=14.5 Kl3=11 Kl4=8 KlassOrdn="special" Case "TDI (0-100)" Kl1=40 Kl2=80 Kl3=80 Kl4=80 If Avg<40 then Klass="Klass 1" Elseif Avg<=80 then Klass="Klass 2-3" Else Klass="Klass 4-5" End If KlassOrdn="" Case "% PT" Kl1=10 Kl2=10 Kl3=20 Kl4=40 Klass1="Klass 1-2" Klass2="Klass 1-2" Case "ACID" Kl1=7.5 Kl2=5.8 Kl3=4.2 Kl4=2.2 KlassOrdn="special" Case Else Kl1=0 Klass="Ingen klassning" KlassOrdn="" End Select End If ' Här slutar klassgränser '--------------------------------------------------------------------------------------- If Parameter="pH" Then ' median If Median<=Kl4 then Klass=Klass5 ElseIf Median<=Kl3 then Klass=Klass4 ElseIf Median<=Kl2 then Klass=Klass3 ElseIf Median<=Kl1 then Klass=Klass2 ElseIf Median>Kl1 then Klass=Klass1 End if ElseIf KlassOrdn="special" then 'Något annorlunda klassgränser (siktdjup, IPS och ACID) If Avg=Kl1 then Klass=Klass1 End if ElseIf KlassOrdn="uppbra" then 'index-klassgränser, högt är bra If Avg<=Kl4 then Klass=Klass5 ElseIf Avg<=Kl3 then Klass=Klass4 ElseIf Avg<=Kl2 then Klass=Klass3 ElseIf Avg<=Kl1 then Klass=Klass2 ElseIf Avg>Kl1 then Klass=Klass1 End if ElseIf KlassOrdn="nerbra" then 'halt-klassgränser, lågt är bra If Avg<=Kl1 then Klass=Klass1 ElseIf Avg<=Kl2 then Klass=Klass2 ElseIf Avg<=Kl3 then Klass=Klass3 ElseIf Avg<=Kl4 then Klass=Klass4 ElseIf Avg>Kl4 then Klass=Klass5 End if End If %>

<% If Max=Min And Max=Avg Then %> <% Else %> <% End If %>
 Senaste året Senaste värdet Klassning
  <% =LastYear %> <% =StatValue(Max) %> <% =Klass %>
År <% If (Parameter="pH" or Parameter="Alkalinitet (mekv/l)") then response.write "Median" Else response.write "Medel" End If %> Max Min Klassning
  <% =LastYear %> <% If (Parameter="pH" or Parameter="Alkalinitet (mekv/l)") then Response.Write(StatValue(Median)) Else Response.Write(StatValue(Avg)) End If %> <% =StatValue(Max) %> <% =StatValue(Min) %> <% =Klass %>

<% End If If Not n MOD 2 = 0 then %>
<% End If n = n + 1 exit do end if loop i = i + 1 loop If Not n MOD 2 = 0 then %>
 
 
 
<% End If %> <% Else %>
Inga data finns för denna station!
<% End If %>
<% 'Sedan stänger vi rs och conn så att de frigörs för nästa fråga. rs.Close conn.Close set rs=Nothing set rs_sista=Nothing set rs_stat=Nothing set rs_median1=Nothing set rs_median2=Nothing set conn=Nothing End If End If %>