Example #1
0
    def executa(self):

        print "executando.."

        self.function = Interpola.InterpolaTabela()
        self.function.console = self.print_text

        self.print_text("Executando..")

        separador = SplitTable()
        dados_separador = TableData()
        atributos = list()

        for index in xrange(self.ui.lwGroupAtributes.count()):
            if self.ui.lwGroupAtributes.item(index).checkState() == 2:
                atributos.append(
                    str(self.ui.lwGroupAtributes.item(index).text()))

        vector_table = self.ShapeSelected.readVectorData()

        dados_separador.data = {'table': vector_table, 'atributos': atributos}
        dados_separador.data["data_path"] = self.ui.leShapePath.text()

        dados_interpolador = TableData()
        image_information = self.ImgRefSelected.getRasterInformation()

        dados_interpolador['table_data'] = dados_separador
        dados_interpolador['atributo'] = str(self.ui.cbAtribute.currentText())
        dados_interpolador["format_image_data"] = image_information

        self.print_text("Interpolando")

        mensagem = self.function.executar(dados_interpolador)
        self.finalizar()
Example #2
0
    def __execOperation__(self):     
               
        self.console(u"iniciando operação de interpolação")

        tabela_data = self.paramentrosIN_carregados['table_data']
        atributo_interpolacao = self.paramentrosIN_carregados['atributo']
        format_image_data = self.paramentrosIN_carregados['format_image_data']
        
        self.console(u"Preparando interpolacao:")
              
        self.WriteVRTfiles(tabela_data.data, atributo_interpolacao)     
        self.WriteCSVfiles(tabela_data.data, atributo_interpolacao)
        
        path = tabela_data.data['data_path']
        keys = tabela_data.keys()
        
        self.console(u"Preparacao completa, interpolando:")
        
        print(keys)
        
        if len(keys) > 0:
            for key in keys: 
                if (key!="data_path"):  
                         
                    self.console(u"criando tabela de interpolação, key: " + key)
                    informacao = self.CreateInterpolationTable(path, key, atributo_interpolacao, format_image_data)
                    
                    interpolation_table = TableData("iformacao de interpolacao")
                    interpolation_table.data = informacao
                    
                    interpolador = InterpoladorIvD("interpolando ECMWF")
                    interpolador.data = interpolation_table
                
                    self.console (interpolador.data)
        else:
            informacao = self.CreateInterpolationTable(path, None, atributo_interpolacao, format_image_data)
            interpolation_table = TableData("iformacao de interpolacao")
            interpolation_table.data = informacao
            interpolador = InterpoladorIvD("interpolando ECMWF")
            interpolador.data = interpolation_table
            self.console (interpolador.data)
        
            
        self.console (u"Interpolacao completa")
        return (u"Interpolacao completa")
Example #3
0
 def interpolar_todas_as_imagens(self, paramIn):
     
     self.print_text(u"Lendo imagens e criando arquivos para a interpolação")
 
     resposta = self.function.executar(paramIn)
     if self.funcao_cancelada() : return
     
     CSVs = resposta["CSVs"]
     VRTs = resposta["VRTs"]
     
     self.print_text(u"Número de imagens identificadas para interpolar: " + str(len(CSVs)))
     self.function.progresso = 0.0
     
     conf_algoritimo = TableData()
     conf_algoritimo["power"] = str(self.ui.txPower.value())
     conf_algoritimo["radius"] = str(self.ui.txRadius.value())
     conf_algoritimo["max_points"] = str(self.ui.txMaxPoint.value())
     conf_algoritimo["min_points"] = str(self.ui.txMinPoint.value())
     
     conf_img_out = RasterFile(file_full_path=str(self.ui.txImgReference.text())).getRasterInformation()
     
     self.console(u"Interpolando imagens...")
     
     for i in range(len(CSVs)):
         
         img_out = RasterFile(file_full_path=VRTs[i].file_full_path)
         img_out.file_ext = "tif"           
         
         paramIn = TableData()
         paramIn["csv"] = CSVs[i]
         paramIn["vrt"] = VRTs[i]
         paramIn["img_out_config"] = conf_img_out
         paramIn["conf_algoritimo"] = conf_algoritimo
         paramIn["img_out"] = img_out
         
         self.function = IDW()
         self.function.setProgresso(i, len(CSVs))
         self.function.data = paramIn
         imagem_interpolada = self.function.data
         self.print_text("Imagem interpolada: " + imagem_interpolada.file_name)
         
         if self.funcao_cancelada(): return
     
     return "tudo certo!"
Example #4
0
    def carregarParamIN(self):

        images = SerialFile()
        parametrosIN = TableData()
        root_in = self.ui.leInFolder.text()
        root_in = _fromUtf8(str(root_in) + "\\")
        root_in = str(root_in).replace("\\", "/")

        images.loadListByRoot(root_in)
        self.print_text(u"Numero de imagens encontradas:" + str(len(images)))

        parametrosIN["images"] = images

        conf_algoritimo = TableData()
        conf_algoritimo["window_size"] = self.ui.leWindowSize.text()
        conf_algoritimo["order"] = self.ui.leOrdem.text()
        #if self.ui.checkBox.isChecked() : conf_algoritimo["null_value"] = double(self.ui.leNullValue.text())
        #else : conf_algoritimo["null_value"] = FileData(data= None)

        parametrosIN["conf_algoritimo "] = conf_algoritimo

        return parametrosIN
    def executa(self):
        
        print "executando.."
        
        self.function = Interpola.InterpolaTabela()
        self.function.console = self.print_text
        
        self.print_text("Executando..")
        
        separador = SplitTable()   
        dados_separador = TableData()
        atributos = list()
        
        for index in xrange(self.ui.lwGroupAtributes.count()):
            if self.ui.lwGroupAtributes.item(index).checkState() == 2:
                atributos.append(str(self.ui.lwGroupAtributes.item(index).text()))
        
        
        vector_table = self.ShapeSelected.readVectorData()
        
        dados_separador.data = {'table' : vector_table, 'atributos' : atributos}
        dados_separador.data["data_path"] = self.ui.leShapePath.text()
        
          
        dados_interpolador = TableData()
        image_information = self.ImgRefSelected.getRasterInformation()

        dados_interpolador['table_data'] = dados_separador
        dados_interpolador['atributo'] = str(self.ui.cbAtribute.currentText())
        dados_interpolador["format_image_data"] = image_information

        
        self.print_text("Interpolando")
        
        mensagem = self.function.executar(dados_interpolador)
        self.finalizar()
    def executa(self):

        self.function = ExtratorSemeaduraColheita()
        self.function.print_text = self.print_text

        root_out = str(self.ui.leOutFolder.text())
        root_in = str(self.ui.leInFolder.text())

        parametrosIN = TableData()
        images = SerialFile(root_path=root_in)
        parametrosIN["images"] = images
        parametrosIN["avanco_semeadura"] = double(
            self.ui.dspASemeadura.value())
        parametrosIN["avanco_colheita"] = double(self.ui.dsbAColheita.value())
        parametrosIN["intervalo_pico"] = str(self.ui.lePPico.text())
        parametrosIN["intervalo_semeadura"] = str(self.ui.lePSemeadura.text())
        parametrosIN["intervalo_colheita"] = str(self.ui.lePColheita.text())
        parametrosIN["null_value"] = double(self.ui.leNullValue.text())
        parametrosIN["prefixo"] = str(self.ui.lePrefixo.text())
        parametrosIN["sufixo"] = str(self.ui.leSufixo.text())
        parametrosIN["mask"] = str(self.ui.leMascara.text())

        images = self.function.executar(parametrosIN)

        if self.funcao_cancelada(): return

        self.print_text(u"Salvando imagens.")

        semeadura = images["imagem_semeadura"]
        semeadura.file_name = self.ui.leImgSemeadura.text()
        semeadura.file_path = str(self.ui.leOutFolder.text())
        semeadura.file_ext = "tif"
        semeadura.saveRasterData()

        colheita = images["imagem_colheita"]
        colheita.file_name = self.ui.leImgColheita.text()
        colheita.file_path = str(self.ui.leOutFolder.text())
        colheita.file_ext = "tif"
        colheita.saveRasterData()

        pico = images["imagem_pico"]
        pico.file_name = self.ui.leImgPico.text()
        pico.file_path = str(self.ui.leOutFolder.text())
        pico.file_ext = "tif"
        pico.saveRasterData()

        self.print_text("Terminado.")
        self.finalizar()
Example #7
0
    def executa(self):

        self.function = SpectreStatisticalStractor()

        self.print_text(u"Organizando dados necessários")

        root_in = str(self.ui.leInFolder.text())
        root_in = path.normpath(root_in)

        imagens_entrada = SerialFile()
        imagens_entrada = imagens_entrada.loadListByRoot(root_in, "tif, img")

        if (len(imagens_entrada) == 0):
            self.console(u"Nenhuma imagem encontrada, abortando função")
            self.finalizar()
            self.console(u"Função finalizada")
            return

        root_out = str(self.ui.leOutFolder.text())
        root_out = path.normpath(root_out)

        paramsIN = TableData()
        paramsIN["images"] = imagens_entrada
        paramsIN["statistics"] = self.statistical_list

        images_saida = self.function.executar(paramsIN)

        self.print_text("Salvando imagens")

        if self.funcao_cancelada():

            return None

        for imagem in images_saida:

            try:
                imagem.saveRasterData(file_path=root_out, ext="tif")
                self.console("Imagem " + imagem.file_name + " salva.")
            except:
                self.console(
                    u"Não foi possivel salvar a imagem: " + imagem.file_name +
                    u". Verifique se o arquivo está sendo usado por outro aplicativo."
                )

        self.print_text(u"Conluído.")
        self.finalizar()
Example #8
0
    def __execOperation__(self):

        self.console(u"iniciando operação de interpolação")

        tabela_data = self.paramentrosIN_carregados['table_data']
        atributo_interpolacao = self.paramentrosIN_carregados['atributo']
        format_image_data = self.paramentrosIN_carregados['format_image_data']

        self.console(u"Preparando interpolacao:")

        self.WriteVRTfiles(tabela_data.data, atributo_interpolacao)
        self.WriteCSVfiles(tabela_data.data, atributo_interpolacao)

        path = tabela_data.data['data_path']
        keys = tabela_data.keys()

        self.console(u"Preparacao completa, interpolando:")

        print(keys)

        if len(keys) > 0:
            for key in keys:
                if (key != "data_path"):

                    self.console(u"criando tabela de interpolação, key: " +
                                 key)
                    informacao = self.CreateInterpolationTable(
                        path, key, atributo_interpolacao, format_image_data)

                    interpolation_table = TableData(
                        "iformacao de interpolacao")
                    interpolation_table.data = informacao

                    interpolador = InterpoladorIvD("interpolando ECMWF")
                    interpolador.data = interpolation_table

                    self.console(interpolador.data)
        else:
            informacao = self.CreateInterpolationTable(path, None,
                                                       atributo_interpolacao,
                                                       format_image_data)
            interpolation_table = TableData("iformacao de interpolacao")
            interpolation_table.data = informacao
            interpolador = InterpoladorIvD("interpolando ECMWF")
            interpolador.data = interpolation_table
            self.console(interpolador.data)

        self.console(u"Interpolacao completa")
        return (u"Interpolacao completa")
Example #9
0
    def executa(self):
        
        '''
            Criando arquivos CSVs e VRTs para submeter a interpolação
        '''
        
        self.console(u"Recolhendo informações")
        
        self.function = RasterToCSVeVRT()
        paramIn = TableData()
        paramIn["images"] = SerialFile(root_path=str(self.ui.txInFolder.text()))
        paramIn["out_folder"] = str(self.ui.txOutFolder.text())
        
        self.print_text(u'Interpolando imagens...')

        resultado = self.interpolar_todas_as_imagens(paramIn)
            
        if self.funcao_cancelada():
            #self.console(u"Função interrompida")
            self.finalizar()
        elif resultado is not None:
            self.console(u"Função concluída")
            self.finalizar()
    def __execOperation__(self):

        sys.stdout.write("Inicializando Parametros...")
        self.print_text(u"Inicializando Parametros...")

        prefix = self.paramentrosIN_carregados["prefixo"]
        sufix = self.paramentrosIN_carregados["sufixo"]

        mask = self.paramentrosIN_carregados["mask"]

        images_super = self.paramentrosIN_carregados["images"]
        avanco_semeadura = self.paramentrosIN_carregados["avanco_semeadura"]
        avanco_semeadura = avanco_semeadura
        avanco_colheita = self.paramentrosIN_carregados["avanco_colheita"]
        avanco_colheita = avanco_colheita

        intervalo_semeadura = self.paramentrosIN_carregados[
            "intervalo_semeadura"]
        intervalo_pico = self.paramentrosIN_carregados["intervalo_pico"]
        intervalo_colheita = self.paramentrosIN_carregados[
            "intervalo_colheita"]

        #barra_progresso = self.paramentrosIN_carregados["progress_bar"]

        intervalo_semeadura = intervalo_semeadura.split("-")
        intervalo_pico = intervalo_pico.split("-")
        intervalo_colheita = intervalo_colheita.split("-")

        images = images_super.loadListRasterData()

        if images == None:
            raise Exception(
                "A funcao necessita de uma serie de imagens para funcionar")

        #n_images = len(images)
        n_linhas = len(images[0])
        n_colunas = len(images[0][0])

        nullValue = float(self.paramentrosIN_carregados["null_value"])
        if (images[0][0][0] == nullValue): print("null value igual")
        #else : print("diferente")

        imagem_referencia = np.zeros((n_linhas, n_colunas))

        imagem_semeadura = array(imagem_referencia).astype(dtype="int32")
        imagem_colheita = array(imagem_referencia).astype(dtype="int32")
        imagem_pico = array(imagem_referencia).astype(dtype="int32")

        sys.stdout.write("Gerando estimativas: ")
        self.print_text("Gerando estimativas.")
        progress(0.0)

        imagem_for_null_value = images[0]
        #nullValue = imagem_for_null_value[0][0]

        avanco_semeadura = timedelta(avanco_semeadura)
        avanco_colheita = timedelta(avanco_colheita)

        images_super[0].metadata.update(nodata=0)

        for i_linhas in range(0, n_linhas):
            #progress(i_linhas/float(n_linhas))
            self.setProgresso(i_linhas, n_linhas)
            for i_coluna in range(0, n_colunas):
                line = list()

                if threading.currentThread().stopped(): return

                if nullValue != imagem_for_null_value[i_linhas][i_coluna]:

                    for img in images:
                        line.append(img[i_linhas][i_coluna])

                    cenaPico = self.findPeakHelper(line, int(
                        intervalo_pico[0]), int(intervalo_pico[1]))  # 3 - 23
                    data_txt_pico = images_super[cenaPico].file_name.replace(
                        prefix, "").replace(sufix, "")
                    data_pico = dt.strptime(data_txt_pico, mask)
                    ano_pico = data_pico.year
                    dia_juliano = data_pico.timetuple().tm_yday

                    imagem_pico[i_linhas][i_coluna] = ((ano_pico * 1000) +
                                                       dia_juliano)

                    cenaSemeadura = self.findLowPeakHelper(
                        line, int(intervalo_semeadura[0]),
                        int(intervalo_semeadura[1]))  # 6 - 23
                    cenaColheita = self.findLowPeakHelper(
                        line, int(intervalo_colheita[0]),
                        int(intervalo_colheita[1]))  # 11 - 34

                    data_txt_semeadura = images_super[
                        cenaSemeadura].file_name.replace(prefix, "").replace(
                            sufix, "")
                    data_semeadura = dt.strptime(data_txt_semeadura, mask)

                    data_txt_colheita = images_super[
                        cenaColheita].file_name.replace(prefix,
                                                        "").replace(sufix, "")
                    data_colheita = dt.strptime(data_txt_colheita, mask)

                    picoMenosSemeadura = data_pico - data_semeadura
                    ColheitaMenosPico = data_colheita - data_pico
                    data_semeadura += timedelta(
                        (picoMenosSemeadura.days * avanco_semeadura).days)
                    data_colheita += timedelta(
                        (ColheitaMenosPico.days * avanco_colheita).days)

                    dia_juliano_semeadura = data_semeadura.timetuple().tm_yday
                    imagem_semeadura[i_linhas][i_coluna] = (
                        (data_semeadura.year * 1000) + dia_juliano_semeadura)

                    dia_juliano_colheita = data_colheita.timetuple().tm_yday
                    imagem_colheita[i_linhas][i_coluna] = (
                        (data_colheita.year * 1000) + dia_juliano_colheita)

        saida = TableData()
        imagem_semeadura = RasterFile(data=imagem_semeadura)
        imagem_semeadura.metadata = images_super[0].metadata
        imagem_semeadura.data_name = "semeadura"

        imagem_colheita = RasterFile(data=imagem_colheita)
        imagem_colheita.metadata = images_super[0].metadata
        imagem_colheita.data_name = "colheita"

        imagem_pico = RasterFile(data=imagem_pico)
        imagem_pico.metadata = images_super[0].metadata
        imagem_pico.data_name = "cenaPico"

        saida["imagem_semeadura"] = imagem_semeadura
        saida["imagem_colheita"] = imagem_colheita
        saida["imagem_pico"] = imagem_pico

        return saida
Example #11
0
if __name__ == '__main__':

    ss = SpectreStatisticalStractor_MT()

    root_ = "C:\\Users\\rennan.paloschi\\Desktop\\Dados_Gerais\\raster\\pesada"
    images = SerialFile(root_path=root_)
    images.loadListByRoot(filtro="tif")

    linha = list()
    for img in images:
        linha.append(img.loadRasterData()[0][:])

    print(len(linha), "----------------------------------")
    print(len(linha[0]), "----------------------------------")

    parametrosIN = TableData()

    parametrosIN["images"] = images

    statistics = list()
    statistics.append("media")
    statistics.append("cv")

    parametrosIN["statistics"] = statistics

    ss.data = parametrosIN
    resultados = ss.data

    imagens = resultados

    print imagens
Example #12
0
    myappid = ("NTX.Gafanhoto.Distibuidorkc.0.1")
    ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)

    paramIN = dict()
    paramIN["semeadura"] = RasterFile(
        file_full_path=
        "C:/CyMP//Gafanhoto//DADOS para Dr//Imagens Cascavel//TesteDatasCultura//semeadura.tif"
    )
    paramIN["colheita"] = RasterFile(
        file_full_path=
        "C:/CyMP//Gafanhoto//DADOS para Dr//Imagens Cascavel//TesteDatasCultura//colheita.tif"
    )
    paramIN[
        "path_out"] = "C:/CyMP//Gafanhoto//DADOS para Dr//Imagens Cascavel//TesteDatasCultura//saida_teste"
    paramIN["Kc"] = TableData()
    #paramIN["Kc"]["0-10"]=40
    #paramIN["Kc"]["10-50"]=80
    #paramIN["Kc"]["50-85"]=115
    #paramIN["Kc"]["85-125"]=80
    #paramIN["Kc"]["125-140"]=50
    paramIN["Kc"]["0-10"] = 0.10
    paramIN["Kc"]["10-50"] = 0.25
    paramIN["Kc"]["50-140"] = 0.60

    #print "chamando funcao"

    funcao = DistribuidorKC_()

    #funcao.console = console
Example #13
0
    def __execOperation__(self):
        
        imagensIN = self.paramentrosIN_carregados["images"]
        outFolder = self.paramentrosIN_carregados["out_folder"]
        
        imagensIN.loadListByRoot()
        
        listaCSV = SerialFile()
        listaVRT = SerialFile()
        
        n_imagens = len(imagensIN)
        i_imagem = 0
        self.setProgresso(i_imagem, n_imagens)
        
        for img in imagensIN :

            matriz = img.loadRasterData()
            nome_img = img.file_name
            info = img.getRasterInformation()
    
            xmin = float(info["xmin"])
            xmax = float(info["xmax"])
            nx = float(info["nx"])
            x_pixelSize = (xmax - xmin) / nx
        
            ymin = float(info["ymin"])
            ymax = float(info["ymax"])
            ny = float(info["ny"])
            y_pixelSize = (ymax - ymin) / ny    
        
            n_linhas = len(matriz)
            n_colunas = len(matriz[0]) 
            
            csv_file = FileData(file_path=outFolder, file_name = nome_img, ext = "csv")
            file_csv_path = csv_file.file_full_path
            
            init_y_position = ymin + (y_pixelSize/2)
            init_x_position = xmin + (x_pixelSize/2)
            
            with open(file_csv_path,'w') as csv:
                csv.write("Easting,Northing,Value\n")
                for i_linha in range(0, n_linhas):
                    progress(i_linha/float(n_linhas-1))
                        
                    cy = init_y_position + (y_pixelSize * i_linha)
                    cy = str(cy)
                    for i_coluna in range(0, n_colunas):
                        
                        value = matriz[i_linha][i_coluna]
                        if threading.current_thread().stopped() : return None

                        cx = init_x_position + (x_pixelSize * i_coluna)
                        line = str(cx) + ',' + cy + ',' + str(value) + '\n'
                        csv.write(line)

            listaCSV.append(csv_file)
            
            vrt_file = csv_file
            vrt_file.file_ext = "vrt"
                
            root = etree.Element("OGRVRTDataSource")
            csv_node = etree.Element("OGRVRTLayer", name=csv_file.file_name)   
            root.append(csv_node)
                                      
            csv_node.append(etree.XML("<SrcDataSource>" +file_csv_path+"</SrcDataSource>"))
            csv_node.append(etree.XML("<GeometryType>wkbPoint</GeometryType>"))
            csv_node.append(etree.XML('<GeometryField encoding="PointFromColumns" x="Easting" y="Northing" z="Value"/>'))
                
            tree = etree.ElementTree(root)
            tree.write(vrt_file.file_full_path, pretty_print=True)
            
            listaVRT.append(vrt_file)
            
            i_imagem = i_imagem + 1.0
            self.setProgresso(i_imagem, n_imagens)

        saida = TableData()
        saida["CSVs"] = listaCSV
        saida["VRTs"] = listaVRT
        
        return saida