Chodziło Ci o wczytanie nie rastrów bez georeferencji z listy z parametrami jak podałeś?
Bezpośrednio z taką funkcjonalnością się nie spotkałem. W sumie fajny pomysł na plugin...
Wersji QGis 2.x nie używaj - to już dawno nie wspierana wersja, a ostatnio pojawił się ostatni patch do 2.18 i już też ma nie być wspierana.
Obecnie warto się interesować tylko 3.X
Poniższy skrypt powinien zadziałać w QGis3. Pisałem na szybko więc nie jest może najładniejszy, ale powinien działać.
Jako wsad (zmienna
lista_rastrow) wpisujesz ścieżkę do txt z wykazem plików jpg w formacie:
ścieżka_do_pliku;xmin;ymin;xmax;ymax;kod_epsg_układu_współrzędnych
Kod:
C:\temp\rastry\r1.jpg;598008.46667449;467168.64237156;598856.66962089;467699.23355774;2178
C:\temp\rastry\r2.jpg;598008.46667449;467168.64237156;598856.66962089;467699.23355774;2178
C:\temp\rastry\r3.jpg;698008.46667449;567168.64237156;698856.66962089;567699.23355774;2178
Odpalony w konsoli pythona QGis3 powinien zrobić to co potrzebujesz.
Ważne, żeby w Ustawienia > Opcje > Układy współrzędnych odznaczyć to żeby pytał o układ dla wczytywanych plików- inaczej się naklikasz.
Kod:
lista_rastrow = 'C:\\temp\\lista_rastrow.txt'
def otw_raster(plik, xmin, ymin, xmax, ymax, crs):
box = QgsRectangle(xmin,ymin, xmax, ymax)
crs = QgsCoordinateReferenceSystem(int(crs))
plik_nazwa = (((atr[0].rsplit('\\', 1))[1]).replace('.jpg',''))
rlayer = QgsRasterLayer(plik, plik_nazwa, 'gdal')
if not rlayer.isValid():
print("Plik {plik_nazwa} jest nie prawidłowy, bądź nie istnieje i nie może być wczytany".format(plik_nazwa=plik_nazwa))
else:
rlayer.setExtent(box)
rlayer.setCrs(crs)
QgsProject.instance().addMapLayer(rlayer)
with open(lista_rastrow, "r") as lista:
for raster in lista:
atr = raster.split(';')
otw_raster(atr[0], float(atr[1]), float(atr[2]), float(atr[3]), float(atr[4]), atr[5])