Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python scriptin modifointi

juffe [14.07.2019 14:50:23]

#

Moi
Latailin ison kasan 130 000kuvaa (https://github.com/horsmik/merikartat) tällä python scriptillä. Scriptin pitäisi muodostaa noista kuvista yksi iso kuva, mutta se jäi muodostumatta. Tuli vain viesti Keskeytetty muistaakseni.

Miten pitäisi modifoida, jotta voisi nyt koittaa yhdistämistä uudelleen lataamatta 130 000 kuvaa uudelleen netistä. Kesti kuitenkin noin 12h lataus.

peran [14.07.2019 15:07:32]

#

MK_A_Get_Map_Tiles.py-tiedostosta.

Muuta...

def GetTile(xtile, ytile, zoom):
  ##Get one tile from wmts and save bitmap as WMTS_zoom_x_y.png
  request.urlretrieve("https://julkinen.liikennevirasto.fi/rasteripalvelu/service/wmts?request=GetTile&version=1.0.0&service=wmts&layer=liikennevirasto:Merikarttasarja%20A%20public&TILEMATRIXSET=WGS84_Pseudo-Mercator&TileMatrix=WGS84_Pseudo-Mercator:"+str(zoom)+"&tilerow="+str(ytile)+"&tilecol="+str(xtile)+"&format=image/png&style=default","WMTS_"+str(zoom)+"_"+str(xtile)+"_"+str(ytile)+".png")

Tällaiseksi:

def GetTile(xtile, ytile, zoom):
  ##Get one tile from wmts and save bitmap as WMTS_zoom_x_y.png
  #request.urlretrieve("https://julkinen.liikennevirasto.fi/rasteripalvelu/service/wmts?request=GetTile&version=1.0.0&service=wmts&layer=liikennevirasto:Merikarttasarja%20A%20public&TILEMATRIXSET=WGS84_Pseudo-Mercator&TileMatrix=WGS84_Pseudo-Mercator:"+str(zoom)+"&tilerow="+str(ytile)+"&tilecol="+str(xtile)+"&format=image/png&style=default","WMTS_"+str(zoom)+"_"+str(xtile)+"_"+str(ytile)+".png")

... ja
B-tiedostosta:

def GetTile(xtile, ytile, zoom):
  ##Get one time from wmts and save bitmap as WMTS_zoom_x_y.png
  request.urlretrieve("https://julkinen.liikennevirasto.fi/rasteripalvelu/service/wmts?request=GetTile&version=1.0.0&service=wmts&layer=liikennevirasto:Merikarttasarja%20B&TILEMATRIXSET=WGS84_Pseudo-Mercator&TileMatrix=WGS84_Pseudo-Mercator:"+str(zoom)+"&tilerow="+str(ytile)+"&tilecol="+str(xtile)+"&format=image/png&style=default","WMTS_"+str(zoom)+"_"+str(xtile)+"_"+str(ytile)+".png")

Tällaiseksi...

def GetTile(xtile, ytile, zoom):
  ##Get one time from wmts and save bitmap as WMTS_zoom_x_y.png
  #request.urlretrieve("https://julkinen.liikennevirasto.fi/rasteripalvelu/service/wmts?request=GetTile&version=1.0.0&service=wmts&layer=liikennevirasto:Merikarttasarja%20B&TILEMATRIXSET=WGS84_Pseudo-Mercator&TileMatrix=WGS84_Pseudo-Mercator:"+str(zoom)+"&tilerow="+str(ytile)+"&tilecol="+str(xtile)+"&format=image/png&style=default","WMTS_"+str(zoom)+"_"+str(xtile)+"_"+str(ytile)+".png")

Käytä testaamatonta koodiani omalla vastuullasi, ja tee kuvista etukäteen varmuuskopio, jotta voit yrittää usemmalla virityksellä.

En vain ymmärrä, miksi et osannut itse tehdä kyseistä viritystä ?

juffe [14.07.2019 16:03:52]

#

Koitin tuon kyllä kommentoida pois aiemmin, mutta virheilmoitus:

def AppendBatConversion(xtile, ytile, zoom):
      ^
IndentationError: expected an indented block

peran [14.07.2019 17:51:28]

#

Herjaa ilmeisesti siitä syystä, ettei aliohjelma tee mitään.

Ratkaisuksi käyneen, että kommentoi koko aliohjelman, ja sen jälkeen sen missä GetTile:ä käytetään...

Kokeileppas seuraavalla tavalla...

#def GetTile(xtile, ytile, zoom):
##Get one time from wmts and save bitmap as WMTS_zoom_x_y.png
#request.urlretrieve("https://julkinen.liikennevirasto.fi/rasteripalvelu/service/wmts?request=GetTile&version=1.0.0&service=wmts&layer=liikennevirasto:Merikarttasarja%20B&TILEMATRIXSET=WGS84_Pseudo-Mercator&TileMatrix=WGS84_Pseudo-Mercator:"+str(zoom)+"&tilerow="+str(ytile)+"&tilecol="+str(xtile)+"&format=image/png&style=default","WMTS_"+str(zoom)+"_"+str(xtile)+"_"+str(ytile)+".png")

Ja kommentoi sitä kutsuvat käskyt...

def RetrieveRangeOfTiles(name_extension, xmin, xmax, ymin, ymax, zoom):
  NoumberOfTiles = ((xmax+1-xmin)*(ymax+1-ymin))
  x_size = str(256*(xmax+1-xmin))
  y_size = str(256*(ymax+1-ymin))
  MakeKapHeaderForGroupOfTiles(name_extension, x_size, y_size, xmin, xmax, ymax, ymin, zoom)
  for x in range(xmin,xmax+1):
    for y in range(ymin,ymax+1):
      NoumberOfTiles -=1
      print(name_extension+" xtile: "+str(x)+", ytile: "+str(y)+" Remaining: "+str(NoumberOfTiles))
      #GetTile(x, y, zoom)
      #MakeKapHeaderSingleTile(name_extension, x, y, zoom)
      #AppendBatConversion(x, y, zoom)
  merge_images(zoom, xmin, xmax, ymin, ymax, name_extension)
  print("Next run command: imgkap "+name_extension+".png "+name_extension+".txt" )

Toimisikohan tämän jälkeen ?

Edit - Tosin näyttää siltä, että kyseinen silmukka ei tee mitään kerkityksellistä.

Metabolix [14.07.2019 18:33:25]

#

Tyhjän funktion sisällöksi käy myös sana return tai pass, jolloin ei tule tuota virheilmoitusta sisennyksestä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta