• Hem
  • Kategorier
  • Senaste
  • Taggar
  • Populära
  • Användare
  • Grupper
Collapse
Dataportal logo

Community på Sveriges dataportal

Ortofoton som Cloud Optimized GeoTIFF (COG) från Lantmäteriet

Scheduled Fäst Låst Flyttad Geografiska data
27 Inlägg 4 Posters 244 Visningar
    • Äldst till nyaste
    • Nyaste till äldst
    • Flest röster
Svara
  • Svara som ämne
Logga in för att posta
Det här ämnet har raderats. Endast användare med ämneshanterings-privilegier kan se det.
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    wrote on Senaste redigerad av
    #1

    Numera finns ortofoton som avgiftsfria data från Lantmäteriet. Dessa är i sin tur tillgängliga som Cloud Optimized GeoTIFF (COG). Det ger möjligheten att strömma dessa i exempelvis QGIS.

    Nedan finns ett pythonskript (QGIS) som inom kartfönstrets utbredningsområde (bbox) gör en sökning mot Lantmäteriets api och lägger till de senaste ortofotona inom området som strömmade bilder (vsicurl). Skriptet kan ju säkert optimeras mer.

    import requests
    import json
    from qgis.core import QgsVectorLayer, QgsProject, QgsFeature, QgsGeometry, QgsPointXY, QgsField, QgsCoordinateTransform, QgsCoordinateReferenceSystem, QgsRasterLayer
    from PyQt5.QtCore import QVariant
    from qgis.utils import iface
    import os
    from requests.auth import HTTPBasicAuth
    from pyproj import Transformer
    from datetime import datetime
    
    # Autentisering
    session = requests.Session()
    session.auth = HTTPBasicAuth("användarnamn", "lösenord")
    
    # Tidsstämpel
    timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
    
    # Hämta bbox i SWEREF 99 TM och konvertera till WGS 84
    extent = iface.mapCanvas().extent()
    bbox_sweref99 = [extent.xMinimum(), extent.yMinimum(), extent.xMaximum(), extent.yMaximum()]
    transformer_to_wgs84 = Transformer.from_crs("EPSG:3006", "EPSG:4326")
    bbox_wgs84 = [transformer_to_wgs84.transform(bbox_sweref99[1], bbox_sweref99[0]), transformer_to_wgs84.transform(bbox_sweref99[3], bbox_sweref99[2])]
    bbox_wgs84 = [bbox_wgs84[0][1], bbox_wgs84[0][0], bbox_wgs84[1][1], bbox_wgs84[1][0]]
    
    # Hämta data från API
    api_url = "https://api.lantmateriet.se/stac-bild/v1/search"
    response = session.post(api_url, headers={"Content-Type": "application/json"}, data=json.dumps({"bbox": bbox_wgs84, "limit": 100}))
    features = response.json().get("features", [])
    
    # Skapa lager i QGIS
    def create_layer(name, features, crs="EPSG:3006"):
        layer = QgsVectorLayer(f"Polygon?crs={crs}", name, "memory")
        provider = layer.dataProvider()
        if features:
            first_feature = features[0]
            for key in first_feature['properties'].keys():
                provider.addAttributes([QgsField(key, QVariant.String)])
            for asset_key in first_feature['assets'].keys():
                provider.addAttributes([QgsField(f"asset_{asset_key}", QVariant.String)])
            layer.updateFields()
            transformer = QgsCoordinateTransform(QgsCoordinateReferenceSystem("EPSG:4326"), QgsCoordinateReferenceSystem(crs), QgsProject.instance())
            for feature in features:
                qgs_feature = QgsFeature()
                attributes = [str(feature['properties'].get(key, "")) for key in first_feature['properties'].keys()]
                for asset_key in first_feature['assets'].keys():
                    attributes.append(feature['assets'][asset_key].get('href', ''))
                qgs_feature.setAttributes(attributes)
                geom = feature.get("geometry")
                if geom and geom.get("type") == "Polygon":
                    points = [transformer.transform(QgsPointXY(coord[0], coord[1])) for coord in geom.get("coordinates")[0]]
                    qgs_feature.setGeometry(QgsGeometry.fromPolygonXY([points]))
                    provider.addFeatures([qgs_feature])
        QgsProject.instance().addMapLayer(layer)
    
    create_layer("Utbredning ortofoton, alla år", features)
    
    # Skapa lager med senaste året
    latest_year = max(int(f['properties'].get('flygar', 0)) for f in features)
    latest_features = [f for f in features if int(f['properties'].get('flygar', 0)) == latest_year]
    create_layer(f"Utbredning ortofoton, {latest_year}", latest_features)
    
    # Funktion för att skapa ett rasterlager från en URL
    def create_raster_layer(url):
        vsicurl_url = f"/vsicurl/{url}"
        layer_name = os.path.basename(url).replace('.tif', '')
        raster_layer = QgsRasterLayer(vsicurl_url, layer_name, "gdal")
        if raster_layer.isValid():
            QgsProject.instance().addMapLayer(raster_layer)
            print(f"Lagret {layer_name} har lagts till i projektet.")
        else:
            print(f"Lagret {layer_name} kunde inte läsas in!")
    
    # Skapa rasterlager för varje asset-länk (exkludera thumbnails)
    for feature in latest_features:
        for asset_key, asset_info in feature['assets'].items():
            href = asset_info.get('href', '')
            if href and not href.endswith('thumbnail.jpg'):
                create_raster_layer(href)
    

    Har du några egna erfarenheter att jobba med Cloud Optimized GeoTIFF?

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    2
  • M Offline
    M Offline
    magnusp
    wrote Senaste redigerad av magnusp
    #2

    Spännande, vill testa detta. Vad behöver man för konto och rättigheter på LMV?

    lmdanielL Ett svar Senaste svaret
    1
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to magnusp Senaste redigerad av
    #3

    @magnusp, du behöver beställa behörighet för Lantmäteriets produkt Ortofoto Nedladdning. Det görs genom Geotorget https://geotorget.lantmateriet.se/geodataprodukter/ortofoto-nedladdning-api.

    Återkoppla gärna när du testat!

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    0
  • M Online
    M Online
    Magnus Sälgö
    wrote Senaste redigerad av
    #4

    Är det inte lite väl bökigt att bara testa vad ni levererar.....

    Skulle titta på vad ni hade för administrativa gränser förut men gav upp...

    Nu tror jag det gick iväg en beställning med följande kryptiska motivering 😉

    image.png

    lmdanielL Ett svar Senaste svaret
    0
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to Magnus Sälgö Senaste redigerad av
    #5

    @Magnus-Sälgö, kul att du är intresserad! Jag vill på samma gång puffa för att det finns bra produktdokumentation och att det kan vara bra att ta formuläret seriöst 😉

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    M Ett svar Senaste svaret
    0
  • M Online
    M Online
    Magnus Sälgö
    replied to lmdaniel Senaste redigerad av Magnus Sälgö
    #6

    @lmdaniel jo men man vill ju testa grejerna det känns lite som man kommer in i en annan värld när man kommer till LM..... det "normala" är att hämta hem saker på GITHUB och vara igång efter 5 minuter.....

    Jag dokumenterar just nu Swedish Archipelago Trail genom att vandra 27 mil och ta > 3000 bilder och vill förstå om detta kan ge mervärde

    M Ett svar Senaste svaret
    0
  • M Offline
    M Offline
    Matself
    replied to Magnus Sälgö Senaste redigerad av
    #7

    @Magnus-Sälgö sa i Ortofoton som Cloud Optimized GeoTIFF (COG) från Lantmäteriet:

    För inte så länge sedan hade Lantmäteriet en bra beställningstjänst där man enkelt kunde välja vilka bilder man ville ha, för att en stund senare ladda ned dem i ett paket, helt körklara.
    Ingenting av det finns kvar, tyvärr. Och det går inte att förstå varför.

    M Ett svar Senaste svaret
    0
  • M Online
    M Online
    Magnus Sälgö
    replied to Matself Senaste redigerad av
    #8

    @Matself tackar....

    mitt "problem" är nog mer att jag inte alls är i LM världen och skulle bara vilja få en känsla vad deras produkter kan bidraga med... tyckte inte manualen gav så mycket...

    M Ett svar Senaste svaret
    0
  • M Offline
    M Offline
    Matself
    replied to Magnus Sälgö Senaste redigerad av
    #9

    @Magnus-Sälgö Min uppfattning är att man inte ska behöva vara i LM-världen för att kunna ta del av öppna geografiska grunddata, eller för den delen HVD-data (högt värderade dataset) enligt EU-direktivet. Men Lantmäteriet har valt att göra på det här sättet, och det finns inget sätt att få dem att ändra sig. Tro mig, jag har försökt. De har i alla fall samvete nog att erkänna att HVD inte kan kallas öppna data enligt gängse definitioner, eftersom konsumenter måste ha registrerade användarkonton och för att det finns en ändamålsprövning på vägen. Och, vill jag tillägga, för att åtkomsten kräver programmering och applikationsutveckling. Det går alltså inte att anonymt ladda ned data i öppna format för direkt användning i förekommande geodataverktyg.

    lmdanielL 3 svar Senaste svaret
    0
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to Matself Senaste redigerad av
    #10

    @Matself, jag vill tillägga, åtkomst kräver inte programmering eller applikationsutveckling.

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    0
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to Matself Senaste redigerad av
    #11

    @Matself, i dess råaste form gör du en sökning på ortofotots id. Som nedan:
    https://api.lantmateriet.se/stac-bild/v1/search?ids=o65225_6125_25_mr23
    Ett id kan du enkelt hitta genom Geolex

    Sedan väljer du bara länken som leder till tif-filen:
    https://dl1.lantmateriet.se/bild/data/orto/se0_16m_sweref/2023_M2/o65225_6125_25_mr23.tif

    Och laddar ner med din vanliga Geotorget-inloggning.

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    0
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to Matself Senaste redigerad av
    #12

    @Matself, du kan ju också söka ut en bbox genom en url. Då ser det ut såhär:
    https://api.lantmateriet.se/stac-bild/v1/search?bbox=16.94859306616046%2C58.827006963167854%2C16.993153844102512%2C58.850106599581544
    Notera att det är wgs84 och att kommatecken visas som %2C i enlighet med hur en url kodas. Resultatet blir lite mer omfattande eftersom alla år inom bbox visas.

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    0
  • M Offline
    M Offline
    Matself
    wrote Senaste redigerad av
    #13

    Min poäng, som du noga bortser ifrån, är att allt det där kan skötas via ett lättbegripligt visuellt gränssnitt, som inte förutsätter att man vet bildens id eller koordinaterna för begränsningsytan i förväg. Som det fungerar för historiska ortofoton.

    lmdanielL 2 svar Senaste svaret
    0
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to Matself Senaste redigerad av
    #14

    @Matself, jag väljer att sticka hål på kritiken om tvingande programmering och applikationsutveckling. På samma sätt som du väljer vissa saker att kritisera.

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    0
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to Matself Senaste redigerad av
    #15

    @Matself, sedan är din kritik av att det saknas ett grafiskt gränssnitt kopplat till det nya tillhandahållandet riktig. Det saknas. Och det är en åsikt jag respekterar. Jag håller med om att en förändring har skett.

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    0
  • M Online
    M Online
    Magnus Sälgö
    wrote Senaste redigerad av
    #16

    Känns som jag och LM krockat igen... min ansökan 2025-05-06 när jag bara ville fatta om produkten har någon nytta för SAT är i status behandlas

    b824aada-6a32-4e92-bfa1-dc407bf1ace3-image.png

    Vore intressant att se om och vilka som använder produkterna det skulle kunna vara en indikation hur de kan användas....

    lmdanielL Ett svar Senaste svaret
    1
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to Magnus Sälgö Senaste redigerad av
    #17

    @Magnus-Sälgö, ett bra sätt att få en n uppfattning om Lantmäteriets produkter och data är genom applikationen Min karta.
    Där kan du tända lagret Flygbild (ortofoto). Då kan du få en uppfattning om hur informationen kan användas. Den produkten du ansöker behörighet för är om du vill ladda ner ortofotona till din enhet och kunna använda informationen offline.

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    1
  • M Online
    M Online
    Magnus Sälgö
    wrote Senaste redigerad av Magnus Sälgö
    #18

    @lmdaniel tackar för din uthållighet vi behöver mer @lmdaniel för att få fart på öppna data i Sverige.... tycker vi mer hör bortförklaringar än att vi rör oss framåt....

    @lmdaniel du som sitter på andra sidan kan du se att en vandringsled modell Stockholm Archipelago Trail SAT kan dra nytta av LMs produkter?

    ....

    Leden säljs in som

    • målgrupp inte bara svenskar
    • enkelt att resa runt på 21 öar och vandra och bo
    • säsongen i skärgården kommer nu att förlängas
      • den vaga tanken är att hitta folk som gillar vandra och är lediga i augusti/september/oktober är min gissning
      • olika aktörer skall "sampaketera" sina produkter.... och kanske hitta nya målgrupper....

    Efter att vandrat 27 mil och startat 6:30 hemma för att vandra en etapp och komma hem 22:00 och enorma problem med Vaxholmsbåtarna så skapade jag en egen FB grupp för att se om det bara är jag som har problem 😉

    Hittills är det barta jag som vandrat leden 😉 mitt spår

    4ab4d9e2-0375-4a10-a969-6324a93b5f67-image.png

    Nu kopplar jag ihop Wikidata <-> Open Street Map <-> WaymarkedTrails där SAT är relation/19012437 <-> 3500 bilder på Wikicommons Category:Stockholm_Archipelago_Trail / karta var bilderna finns <-> Wikipedia på 8 språk <-> kopplat till beskrivningar om öarna och andra saker på Wikipedia <-> kopplat till Google Knowledge graf kgmid=/g/11wr6pcld4 <-> kopplat Instagram <-> kopplat till Facebook grupp om SAT

    • lång video jag gjorde nyss om denna koppling för att ge personerna på SAT att hänga med vad som görs
      • vi har ett Linked in löfte från Nacka kommun att öppna data kommer
        • bränd på tomma löften tidigare så valde jag att gå 27 mil för att skapa egen data = tid 1 månad och galet med buss och båtresor mina spår

    image.png

    2e096c74-a33d-4728-9791-8e9afe81e486-image.png

    07a71304-28ea-4ca7-a66f-219f1a571998-image.png

    894f6f96-7c0f-4d85-80be-c5fb9d0ce1bb-image.png


    • Exempel bilder på Wikicommons på en karta tagna när man vandrar SAT

    • Exempel visa var det finns dricksvatten genom att ha en kategori för bilder tagna på dricksvatten längs SAT och visa det på en karta

      • en Overpass fråga som hämtar platser med dricksvatten från Open Street Map

    724e0977-e46b-4567-b909-ac01db83e49e-image.png

    • Exempel Mapillary (har 360 bilder för Arholma som jag inte laddat upp)
      • bilder tagna längs SAT Ålö med iphone nedanför

    7532807b-ca60-47c5-aac9-0356350e048a-image.png

    • hur vi stöder på Wikipedia artikel på 8 språk och har statistik antal visningar - min issue #56

    fd432344-3870-4ce1-8df7-d3ed48dbd0cc-image.png

    lmdanielL Ett svar Senaste svaret
    0
  • M Online
    M Online
    Magnus Sälgö
    wrote Senaste redigerad av
    #19
    Processen att felrapportera minkarta.lantmateriet.se till LM?

    Verkar som Stockholm Archipelago Trail saknas

    • minkarta.lantmateriet.se/plats/3006
      c499377f-7be2-4cfa-a848-0011f57e87bb-image.png

    • hur jag vandrade
      image.png

    minkarta.lantmateriet.se verkar inte ha med #Stockholm Airchipelago Trail

    • GPXer som dom publicerat och jag laddat ned
    • Waymarked Trails med leden 19012437 / Open Street Map 19012437
    • mina spår
    • min issue #63
    Ett svar Senaste svaret
    0
  • lmdanielL Offline
    lmdanielL Offline
    lmdaniel
    replied to Magnus Sälgö Senaste redigerad av
    #20

    @Magnus-Sälgö, i fallet SAT borde de kunna använda Lantmäteriets information som bakgrundsdata för att sedan överlagra sin egen information. Jag tänker dock tvärt om – att Lantmäteriet borde nyttja informationen från SAT bättre. I många kommuner och län finns leder inlagt. Men där brukar den som underhåller lederna skicka in sträckningar eller liknande. För SAT kanske det borde vara någon intressepunkt som skickas in eller liknande.
    Jag har fört dialog med flera kommuner i södra delen av vårt land och uppmanat dessa att publicera sina data som öppna genom Sveriges dataportal, exempelvis leder eller grillplatser eller badplatser. Om många följer samma specifikation blir det lättare för Lantmäteriet att i så fall läsa in dessa data till vår nationella karta. Men då krävs ju att många gör likadant. Annars blir det ett för stort arbete för Lantmäteriet. I väntan på det kan man ju använda Förbättra kartan som är en tjänst från Lantmäteriet för att förbättra och justera felaktigheter.

    Daniel Regemar
    Regional geodatasamordnare
    Lantmäteriet

    Ett svar Senaste svaret
    1

Finansieras av Europeiska unionen logo
  • Logga in

  • Har du inget konto? Registrera

  • Login or register to search.
  • Första inlägget
    Sista inlägget
0
  • Hem
  • Kategorier
  • Senaste
  • Taggar
  • Populära
  • Användare
  • Grupper
  • Logga in

  • Har du inget konto? Registrera

  • Login or register to search.