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

Community på Sveriges dataportal

lmdanielL

lmdaniel

@lmdaniel
Sluta följ Följ
About
Inlägg
86
Ämnen
10
Grupper
0
Följare
0
Följer
1

Flagga profil
Blockera användare
Sluta blockera användare

Inlägg

Senaste Bästa Controversial

    Enkelt pythonskript för att hämta kulturhistoriska lämningar från Nationella geodataplattformen
  • lmdanielL lmdaniel
    28 mars 2025 09:52

    Nedan visas ett enkelt pythonskript för att hämta kulturhistoriska lämningar i form av referensobjekt från Nationella geodataplattformen. Det sker inget urval utifrån attribut annat än typ. Limit-parametern begränsar hur många objekt som hämtas. Det går att maximalt hämta 10000 objekt åt gången.

    Pythonskriptet hämtar en OAuth2-token från Lantmäteriets API genom att skicka en POST-förfrågan med dina konsumentnycklar. När token har hämtats, används den för att autentisera en annan POST-förfrågan till Lantmäteriets API för att hämta data om kulturhistoriska lämningar. Slutligen loggas den hämtade datan till konsolen.

    # -*- coding: utf-8 -*-
    
    import urllib.request, json, base64
    
    token = json.loads(urllib.request.urlopen(urllib.request.Request(
        'https://apimanager.lantmateriet.se/oauth2/token',
        data='grant_type=client_credentials'.encode('utf-8'),
        headers={'Authorization': 'Basic ' + base64.b64encode(b'consumerKey:consumerSecret').decode('utf-8'),
                 'Content-Type': 'application/x-www-form-urlencoded'}
    )).read().decode('utf-8')).get('access_token')
    
    response = json.loads(urllib.request.urlopen(urllib.request.Request(
        'https://api.lantmateriet.se/distribution/geodatakatalog/sokning/v1/kulturhistorisklamning/v1/search',
        data=json.dumps({"query": {"feature.typ": {"eq": "kulturhistorisk lämning"}}, "limit": 10}).encode('utf-8'),
        headers={'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}
    )).read().decode('utf-8'))
    
    print(json.dumps(response, indent=2, ensure_ascii=False))
    

  • Framtida samverkan och dialog
  • lmdanielL lmdaniel
    för 14 dagar sedan

    Startar en tråd med anledning av att communityt stängs till årsskiftet.

    https://community.dataportal.se/post/5405

    Hur samverkar vi och för dialog bäst framöver? Är det genom Dela Digitalt eller genom sociala media, exempelvis LinkedIn? Eller finns det något forum som gått mig förbi?

    På med idéstruten! 💡


  • Enkel PHP för att hämta kulturhistoriska lämningar från Nationella geodataplattformen
  • lmdanielL lmdaniel
    28 mars 2025 11:30

    Nedan visas en enkel PHP för att hämta kulturhistoriska lämningar i form av referensobjekt från Nationella geodataplattformen. Det sker inget urval utifrån attribut annat än typ. Limit-parametern begränsar hur många objekt som hämtas. Det går att maximalt hämta 10000 objekt åt gången.

    PHP-koden hämtar en OAuth2-token från Lantmäteriets API genom att skicka en POST-förfrågan med dina konsumentnycklar. När token har hämtats, används den för att autentisera en annan POST-förfrågan till Lantmäteriets API för att hämta data om kulturhistoriska lämningar. Slutligen skrivs den hämtade datan ut i JSON-format.

    header('Content-Type: application/json');
    function getToken() {
        return json_decode(file_get_contents('https://apimanager.lantmateriet.se/oauth2/token', false, stream_context_create([
            'http' => [
                'header' => [
                    'Authorization: Basic ' . base64_encode('consumerKey:consumerSecret'),
                    'Content-Type: application/x-www-form-urlencoded'
                ],
                'method' => 'POST',
                'content' => 'grant_type=client_credentials'
            ]
        ])), true)['access_token'] ?? exit('Error fetching token');
    }
    function searchData($token) {
        return file_get_contents('https://api.lantmateriet.se/distribution/geodatakatalog/sokning/v1/kulturhistorisklamning/v1/search', false, stream_context_create([
            'http' => [
                'header' => [
                    'Authorization: Bearer ' . $token,
                    'Content-Type: application/json'
                ],
                'method' => 'POST',
                'content' => json_encode([
                    'query' => ['feature.typ' => ['eq' => 'kulturhistorisk lämning']],
                    'limit' => 10
                ])
            ]
        ])) ?? exit('Error fetching data');
    }
    echo searchData(getToken());
    

  • Vägledning för att publicera data om grillplatser
  • lmdanielL lmdaniel
    10 apr. 2025 12:34

    @Magnus-Sälgö,
    Grillplatser finns dessvärre inte som en fastslagen datamängd för Nationella geodataplattformen, NGP – och tillhandahålls därigenom inte än genom den infrastrukturen. Men om dessa hade funnits tillgängliga hade de haft ett UUID som det kunnat gå att koppla annan information till.


  • Enkelt javascript för att hämta kulturhistoriska lämningar från Nationella geodataplattformen
  • lmdanielL lmdaniel
    27 mars 2025 15:07

    Nedan visas ett enkelt javascript för att hämta kulturhistoriska lämningar i form av referensobjekt från Nationella geodataplattformen. Det sker inget urval utifrån attribut annat än typ. Limit-parametern begränsar hur många objekt som hämtas. Det går att maximalt hämta 10000 objekt åt gången.

    Javascriptet hämtar en OAuth2-token från Lantmäteriets API genom att skicka en POST-förfrågan med dina konsumentnycklar. När token har hämtats, används den för att autentisera en annan POST-förfrågan till Lantmäteriets API för att hämta data om kulturhistoriska lämningar. Slutligen loggas den hämtade datan till konsolen.

            fetch('https://apimanager.lantmateriet.se/oauth2/token', {
                method: 'POST',
                headers: {
                    'Authorization': 'Basic ' + btoa('consumerKey:consumerSecret'),
                    'Content-Type': 'application/x-www-form-urlencoded'
                },
                body: 'grant_type=client_credentials'
            })
            .then(res => res.json())
            .then(token => fetch('https://api.lantmateriet.se/distribution/geodatakatalog/sokning/v1/kulturhistorisklamning/v1/search', {
                method: 'POST',
                headers: {
                    'Authorization': 'Bearer ' + token.access_token,
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    "query": {"feature.typ": {"eq": "kulturhistorisk lämning"}},
                    "limit": 10
                })
            }))
            .then(res => res.json())
            .then(data => console.log(data))
            .catch(err => console.error(err));
    

  • Enkel PHP för att hämta kulturhistoriska lämningar från Nationella geodataplattformen
  • lmdanielL lmdaniel
    28 mars 2025 13:54

    @mattias
    Jag ska vara transparent och säga att jag försöker driva på just den här frågan internt inom Lantmäteriet om hur myndigheten bättre skulle kunna bidra med kod-exempel på någon Git-plattform eller egen plattform. Vi vet att det är något som efterfrågas. Kanske kan det hända något framöver.

    I väntan på något ställningstagande provar jag att bidra här! 💡


  • Ortofoton som Cloud Optimized GeoTIFF (COG) från Lantmäteriet
  • lmdanielL lmdaniel
    13 mars 2025 17:05

    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?


  • Ortofoton som Cloud Optimized GeoTIFF (COG) från Lantmäteriet
  • lmdanielL lmdaniel
    11 juni 2025 12:00

    @HuggeK, efter din input har jag tagit vidare frågan internt på Lantmäteriet. Min förhoppning är att api-portalen även ges tillgång till som standard vid ansökan om konsumtion av alla Lantmäteriets produkter och inte bara genom NGP. Det bådar gott. I väntan på det måste man tyvärr ta 'omvägen' genom att ansöka om att bli konsument för NGP. Tack för att du lyfte det!


  • Webbinarium, juni 2025 – Kan öppna geodata leda till risker för Sveriges säkerhet?
  • lmdanielL lmdaniel
    15 maj 2025 20:21

    Lantmäteriet och Totalförsvarets forskningsinstitut, FOI, berättar om ett genomfört projekt där myndigheterna har utvecklat ett förslag till metod för att bedöma risker vid tillgängliggörande av öppna geodata (enligt lag 2022:818, 2 kap. §1) i relation till Sveriges säkerhet.

    När: Måndag 9 juni

    Tid: kl. 13-15

    Att göra riskbedömningar för Sveriges säkerhet kräver både resurser och kompetens. Förslaget till metod kan hjälpa till att säkerställa enhetliga och konsekventa bedömningar samt att involvera rätt kompetens i arbetet.

    Webbinariet riktar sig till dig som arbetar i offentlig verksamhet och har ansvar för att göra riskbedömningar inför tillgängliggörande av geodata.

    Läs mer och anmäl dig på den här länken.


  • Vägledning för att publicera data om grillplatser
  • lmdanielL lmdaniel
    10 apr. 2025 16:09

    @Magnus-Sälgö, samverkan har till viss del skett mellan aktörerna. Det som ligger närmast till hands vad gäller grillplatser är ju arbetet med storskaliga geodata. Här har det bedrivits ett Smart Built-projekt inom det området.. Ett arbete har också påbörjats inom Lantmäteriet i samverkan med andra parter – men det har pausats för att göra omtag framöver.


  • Dataportal och NGP
  • lmdanielL lmdaniel
    12 juni 2024 10:51

    @Jonas-Nordqvist
    Jag vill påstå att dataportal.se är en infrastruktur för tillhandahållande av metadata och inte ett tillhandahållande av data i sig.

    Genom dataportal.se skulle varje enskild kommun kunna lägga upp en post om var deras detaljplaneinformation finns tillgänglig. Utan NGP skulle varje kommun förmodligen ha ett individuellt API och för det API:et en viss typ av frågor som är möjliga att ställa. Som konsument skulle det vara komplicerat att ställa API-frågor på nationell nivå.

    Genom NGP så finns ett API för att nyttja för detaljplaneinformation och inte 290 olika API:er som skulle kunna vara fallet utan NGP.


  • Öppna Data Community på https://kamunity.se/k/oppnadata
  • lmdanielL lmdaniel
    för ungefär 11 timmar sedan

    Toppen ju!


  • 15 kommuner i Skaraborg i Västra Götaland lanserar gemensam datadriven karttjänst för Ledig Tomtmark
  • lmdanielL lmdaniel
    23 maj 2025 10:06

    @tomasmonsen, mycket intressant!

    Jag blir ju såklart nyfiken på hur det samlade datat presenteras. Och data aggregeras innan det presenteras eller om det blir en data källa per kommun.

    Jag hittar inte länken till själva kartan?


  • Dataportal och NGP
  • lmdanielL lmdaniel
    11 juni 2024 17:04

    @Jonas-Nordqvist
    Se nationella geodataplattformen (NGP) som en infrastruktur för tillhandahållande av strukturerad information åtkomlig genom ett standardiserat API.
    Kommunen, som i ditt exempel, nyttjar NGP för ett tillhandahållande av sin detaljplaneinformation och gör den åtkomlig och läsbar för ett maskin till maskin-gränssnitt. Dessutom kan man även utifrån givna referensdata göra nationella utsökningar på enskilda attribut i alla kommuners data.

    Ett tillgängliggörande till NGP sker vanligtvis genom ett knapptryck i verksamhetssystemet. En digital kopia arkiveras hos kommunen eftersom NGP inte är ett arkiv. Och i den bästa av världar läser övriga system i kommunen och i samhället från NGP. Således bör risken vara låg att olika versioner finns.

    Kolla gärna in Lantmäteriets nya webbutbildning om NGP:
    Nationella geodataplattformen – språngbrädan till digitalisering.

    Daniel Regemar
    Lantmäteriet


  • Nationella geodataplattformen som en ny underkategori?
  • lmdanielL lmdaniel
    26 apr. 2024 10:05

    Hej!

    Jag funderar på om det är möjligt att skapa en underkategori för nationella geodataplattformen? Nu har inte jag använt communityt så jättemycket och vet inte riktigt hur strukturen är tänk.

    Men jag kände att det kunde vara intressant att samla diskussioner och ämnen kopplat till nationella geodataplattformen i en egen underkategori.

    /Daniel, Lantmäteriet


  • 15 kommuner i Skaraborg i Västra Götaland lanserar gemensam datadriven karttjänst för Ledig Tomtmark
  • lmdanielL lmdaniel
    23 maj 2025 10:37

    @tomasmonsen, nu hittade jag i en annan nyhet att länk kommer klockan 13. Så jag får ge mig till tåls.

    https://www.skovde.se/nyheter/lansering-av-karttjanst-for-lediga-tomter/


  • Bidra till webbinariet: Framtidens innovationer med data från Nationella geodataplattformen (NGP)
  • lmdanielL lmdaniel
    19 juni 2024 10:34

    Här kommer länken till sändningen att finnas tillgänglig.

    https://www.lantmateriet.se/sv/smartare-samhallsbyggnadsprocess/om-smartare-samhallsbyggnad/informationsmoten/#faq=a943


  • DIGG -> PTS vad kan förväntas
  • lmdanielL lmdaniel
    för 10 dagar sedan

    Jag tror att det bara kan bli bättre. Jag tycker att PTS hittills gjort ett bra jobb med Digitalidag.

    I övrigt är jag spänd på vad som kan hända.


  • Framtida samverkan och dialog
  • lmdanielL lmdaniel
    för 11 dagar sedan

    @josefinlassi, intressant exempel med Frankrike. Vet du något om hur vara nordiska grannländer har organiserat det? Det känns ju lite dumt om varje aktör inom sin domän ska driva ett eget community.


  • Personuppgifter i inlägg är inte OK
  • lmdanielL lmdaniel
    6 sep. 2024 20:25

    @DIGG_admin
    Oj, jag gör tolkningen att jag då inte heller får skriva under med mitt egna namn eller skriva ut min epost i syfte att underlätta kontakt? Eller är det andras personuppgifter som avses?

  • 1
  • 2
  • 1 / 2
Finansieras av Europeiska unionen logo
    • Online PierreMesure
    • Status
    • Online Online
    • Borta Borta
    • Stör inte Stör inte
    • Osynlig Osynlig
    • Bokmärken
    • Redigera profil
    • Inställningar
  • Sök
  • 0 Notiser 0
    • Markera alla notiser som lästa All notifications
  • 0 Drafts 0
    •  
       
       
      You have no drafts
  • Första inlägget
    Sista inlägget
0
  • Hem
  • Kategorier
  • Olästa 0
  • Senaste
  • Taggar
  • Populära
  • Användare
  • Grupper
  • Sök
  • 0 Notiser 0
    • Markera alla notiser som lästa All notifications
  • 0 Drafts 0
    •  
       
       
      You have no drafts
    • Online PierreMesure
    • Status
    • Online Online
    • Borta Borta
    • Stör inte Stör inte
    • Osynlig Osynlig
    • Bokmärken
    • Redigera profil
    • Inställningar

Ser ut som din anslutning till Community på Sveriges dataportal gick förlorad, vänta medan vi försöker att återansluta.