help="spatial resolution in x (in m)", dest="dx", required=False, type=int, default=100) parser.add_argument("-dy", "--dy", help="spatial resolution in y (in m)", dest="dy", required=False, type=int, default=100) args = parser.parse_args() ULX = 600000.0 ULY = 4000020.0 LRX = 709800.0 LRY = 3890220.0 projection = 'epsg:32612' dict = {'ulx': ULX, 'uly': ULY, 'lrx': LRX, 'lry': LRY, 'a_srs': projection} dict.update({'otype': 'GDT_UInt16'}) dict.update({'dy': args.dy, 'dx': args.dx}) jim0 = jl.createJim(**dict) if jim0.nrOfCol() != 1098: print("Failed: number of cols") if jim0.nrOfRow() != 1098: print("Failed: number of rows") else: print("Success: create georeferenced image") jim0.close()
dest="sampleSize", required=False, type=int, default=100) parser.add_argument("-classifier", "--classifier", help="classifier (sml, svm, ann)", dest="classifier", required=True, type=str, default="sml") args = parser.parse_args() # try: if True: jim = jl.createJim(args.input) #preparation of reference classDict = {} classDict['urban'] = 2 classDict['agriculture'] = 12 classDict['forest'] = 25 classDict['water'] = 41 classDict['rest'] = 50 classFrom = list(range(0, 50)) classTo = [50] * 50 for i in range(0, 50): if i >= 1 and i < 10: classTo[i] = classDict['urban'] elif i >= 11 and i < 22: classTo[i] = classDict['agriculture'] elif i >= 23 and i < 25:
parser=argparse.ArgumentParser() parser.add_argument("-input","--input",help="Path of the input raster dataset",dest="input",required=True,type=str) parser.add_argument("-filter","--filter",help="filter function",dest="filter",required=False,type=str) parser.add_argument("-band","--band",help="band to filter (leave empty to filter all bands)",dest="band",required=False,type=int,nargs='+') parser.add_argument("-size","--size",help="size",dest="size",required=False,type=int,default=3) parser.add_argument("-nodata","--nodata",help="no data value",dest="nodata",required=False,type=int,nargs='+') parser.add_argument("-output","--output",help="Path of the classification output raster dataset",dest="output",required=False,type=str) args = parser.parse_args() # try: if True: jimlist=jl.createJimList() if args.band: for band in args.band: jim0=jl.createJim(filename=args.input,band=band) print("mean of jim0:{}".format(jim0.getStats({'function':'mean'}))) projection=jim0.getProjection() gt=jim0.getGeoTransform() np0=jl.jim2np(jim0) jim=jl.np2jim(np0) print("mean of jim:{}".format(jim.getStats({'function':'mean'}))) print("number of cols in jim:{}".format(jim.nrOfCol())) print("number of rows in jim:{}".format(jim.nrOfRow())) # jim.setGeoTransform(gt) # jim.setProjection(projection) if args.filter: if args.nodata: print("filter with nodata value {}".format(args.nodata)) jimlist.pushImage(jim.filter2d({'filter':args.filter,'dx':args.size,'dy':args.size,'nodata':args.nodata})) else:
# Change log import argparse import os import jiplib as jl parser = argparse.ArgumentParser() parser.add_argument("-input", "--input", help="Path of the input file", dest="input", required=True, type=str) args = parser.parse_args() jim0 = jl.createJim(filename=args.input, noread=True) ULX = jim0.getUlx() ULY = jim0.getUly() LRX = ULX + 1000 LRY = ULY - 1000 jim0.close() jim0 = jl.createJim(filename=args.input, ulx=ULX, uly=ULY, lrx=LRX, lry=LRY, dx=5, dy=5) if jim0.nrOfCol() != 200: print("Failed: createJim with upsample") elif jim0.nrOfRow() != 200:
import argparse import os import math import jiplib as jl parser=argparse.ArgumentParser() parser.add_argument("-input","--input",help="Path of the input raster dataset",dest="input",required=True,type=str) parser.add_argument("-vector","--vector",help="Path of the sample vector dataset with labels",dest="vector",required=True,type=str) parser.add_argument("-model","--model",help="Path of the model output filename used for training",dest="model",required=True,type=str) parser.add_argument("-output","--output",help="Path of the classification output raster dataset",dest="output",required=True,type=str) parser.add_argument("-classifier","--classifier",help="classifier (svm, ann)",dest="classifier",required=False,type=str,default="svm") args = parser.parse_args() try: print("createJim") jim=jl.createJim(args.input) print("createVector") sample=jl.createVector(); print("open vector",args.vector) sample.open(args.vector) print("extractOgr") training=jim.extractOgr(sample,{'output':'training','oformat':'Memory','copy':'label'}) test=jim.extractOgr(sample,{'output':'test','oformat':'Memory','copy':'None'}) if args.classifier == 'svm': #SVM classification print("training") training.train({'method':args.classifier,'label':'label','model':args.model}) print("classification") vclass=test.classify({'output':args.output,'co':'OVERWRITE=YES','model':args.model,'method':args.classifier}) print("write") vclass.write()
type=float, default=2000) args = parser.parse_args() ULX = 600000.0 ULY = 4000020.0 LRX = 709800.0 LRY = 3890220.0 projection = 'epsg:32612' dict = {'ulx': ULX, 'uly': ULY, 'lrx': LRX, 'lry': LRY, 'a_srs': projection} dict.update({'nrow': args.nrow, 'ncol': args.ncol}) dict.update({'uniform': [args.min, args.max + 1]}) dict.update({'otype': 'GDT_UInt16'}) dict.update({'seed': 10915}) try: jim0 = jl.createJim(**dict) #create a copy jim1 = jl.createJim(jim0) if not jim1.isEqual(jim0): print("Failed: isEqual") throw() jim0.d_pointOpBlank(500) if jim1.isEqual(jim0): print("Failed: isEqual") throw() jim1.d_pointOpBlank(2000) jim0.close() theStats = jim1.getStats({'function': ['max']}) if theStats['max'] != 2000: print("Failed: max") throw()
# History # 2017/10/23 - Created by Pieter Kempeneers ([email protected]) # Change log import argparse import os import jiplib as jl parser=argparse.ArgumentParser() parser.add_argument("-input","--input",help="Path of the input file",dest="input",required=True,type=str) parser.add_argument("-extent","--extent",help="Path of the extent file",dest="extent",required=True,type=str) args = parser.parse_args() jim0=jl.createJim(filename=args.input,extent=args.extent) v0=jl.createVector() v0.open({'filename':args.extent}) print("v0.getBoundingBox():",v0.getBoundingBox()) if jim0.getUlx()<v0.getUlx()-jim0.getDeltaX() or jim0.getUlx()>v0.getUlx()+jim0.getDeltaX(): print("1Failed: get spatial extent ulx") elif jim0.getUly()>v0.getUly()+jim0.getDeltaY() or jim0.getUly()<v0.getUly()-jim0.getDeltaY(): print("2Failed: get spatial extent uly") if jim0.getLrx()<v0.getLrx()-jim0.getDeltaX() or jim0.getLrx()>v0.getLrx()+jim0.getDeltaX(): print("3Failed: get spatial extent lrx") elif jim0.getLry()>v0.getLry()+jim0.getDeltaY() or jim0.getLry()<v0.getLry()-jim0.getDeltaY(): print("4Failed: get spatial extent lry") else: print("Success: createJim with extent") jim0.close() v0.close()
oformat='Memory' openDict={'t_srs':'epsg:'+args.t_srs} openDict.update({'ulx':args.ulx,'uly':args.uly,'lrx':args.lrx,'lry':args.lry}) if(args.dx): openDict.update({'dx':args.dx}) if(args.dy): openDict.update({'dy':args.dy}) if args.input: refpath=args.input else: refpath='/eos/jeodpp/data/base/Landcover/EUROPE/CorineLandCover/CLC2012/VER18-5/Data/GeoTIFF/250m/g250_clc12_V18_5.tif' openDict.update({'s_srs':'epsg:3035'}) # openDict.update({'filename':refpath}) jim_ref=jl.createJim(refpath,**openDict) # jim_ref=jim_ref.warp({'t_srs':'epsg:'+args.t_srs}) classDict={} classDict['urban']=2 classDict['agriculture']=12 classDict['forest']=25 classDict['water']=41 classDict['rest']=50 sorted(classDict.values()) print(classDict) classFrom=list(range(0,50)) classTo=[50]*50 print("classFrom: {}".format(classFrom))
help="Postpone reading raster dataset", dest="noread", required=False, type=bool, default=False) parser.add_argument("-random", "--random", help="Number of random pixels to select", dest="random", required=False, type=int, default=100) args = parser.parse_args() try: jim0 = jl.createJim(args.input) rules = ['centroid', 'min', 'max', 'mean', 'stdev'] if not args.vector: v01 = jim0.extractSample({ 'random': 20, 'buffer': 3, 'rule': rules, 'output': 'mem01', 'oformat': 'Memory' }) v01.close() npoint = 100 gridsize = int(jim0.nrOfCol() * jim0.getDeltaX() / math.sqrt(npoint)) v02 = jim0.extractSample({ 'grid': gridsize, 'buffer': 3,
parser.add_argument("-max","--max",help="max value for pixel values",dest="max",required=False,type=float,default=2000) args = parser.parse_args() ULX=600000.0 ULY=4000020.0 LRX=709800.0 LRY=3890220.0 projection='epsg:32612' dict={'ulx':ULX,'uly':ULY,'lrx':LRX,'lry':LRY,'a_srs':projection} dict.update({'nrow':args.nrow,'ncol':args.ncol}) dict.update({'uniform':[args.min,args.max+1]}) dict.update({'otype':'GDT_UInt16'}) dict.update({'seed':10915}) # try: if True: jim0=jl.createJim(**dict) jim0.d_pointOpBlank(500) #create a copy without copying pixel values jim1=jl.createJim(jim0,copyData=False) #images should have same geoTransform print("jim0.getGeoTransform:{}".format(jim0.getGeoTransform())) print("jim1.getGeoTransform:{}".format(jim1.getGeoTransform())) if jim0.getGeoTransform() != jim1.getGeoTransform(): print("Failed: geoTransform") throw() print("stats jim0:{}".format(jim0.getStats({'function':['min','max','mean']}))) print("stats jim1:{}".format(jim1.getStats({'function':['min','max','mean']}))) #images should not be identical in pixel values if jim0.isEqual(jim1): print("Failed: isEqual") throw()