示例#1
0
                    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:
示例#3
0
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:
示例#4
0
# 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()
示例#6
0
                    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()
示例#7
0
# 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()
示例#8
0
        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))
示例#9
0
                    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,
示例#10
0
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()