BR112020004550A2 - método implementado por computador, produto de programa de computador para otimização da proteção agrícola e sistema de computador - Google Patents

método implementado por computador, produto de programa de computador para otimização da proteção agrícola e sistema de computador Download PDF

Info

Publication number
BR112020004550A2
BR112020004550A2 BR112020004550-0A BR112020004550A BR112020004550A2 BR 112020004550 A2 BR112020004550 A2 BR 112020004550A2 BR 112020004550 A BR112020004550 A BR 112020004550A BR 112020004550 A2 BR112020004550 A2 BR 112020004550A2
Authority
BR
Brazil
Prior art keywords
crop
data
product
code
guidance
Prior art date
Application number
BR112020004550-0A
Other languages
English (en)
Inventor
Klaus Stenzel
Maximilian Seitz
Matthias Nachtmann
Original Assignee
Basf Se
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Basf Se filed Critical Basf Se
Publication of BR112020004550A2 publication Critical patent/BR112020004550A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/02Agriculture; Fishing; Mining
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01BSOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS, DETAILS, OR ACCESSORIES OF AGRICULTURAL MACHINES OR IMPLEMENTS, IN GENERAL
    • A01B79/00Methods for working soil
    • A01B79/005Precision agriculture
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01BSOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS, DETAILS, OR ACCESSORIES OF AGRICULTURAL MACHINES OR IMPLEMENTS, IN GENERAL
    • A01B79/00Methods for working soil
    • A01B79/02Methods for working soil combined with other agricultural processing, e.g. fertilising, planting
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01CPLANTING; SOWING; FERTILISING
    • A01C21/00Methods of fertilising, sowing or planting
    • A01C21/007Determining fertilization requirements
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01GHORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
    • A01G22/00Cultivation of specific crops or plants not otherwise provided for

Abstract

Sistema (100), método e produto de programa de computador para otimização da proteção vegetal. Um módulo gerador (120) tem acesso a uma ou mais estruturas de dados de configuração (220), em que uma ou mais estruturas de dados de configuração incluem campos de dados para armazenar dados de safra (221), dados de orientação (222) relativos a dados de safra correspondentes e dados de produtos de proteção vegetal (223) relativos à orientação correspondente. Além disso, ele tem acesso a uma série de trechos de código (230) em que cada trecho de código (231, 232, 233) possui uma condição relativa a pelo menos um campo de propriedade da uma ou mais estruturas de dados (220) ou a um resultado de outro trecho de código e inclui adicionalmente lógica de programa genérica associada à condição, em que cada campo de propriedade é utilizado na condição de pelo menos um trecho de código. Os diversos trechos de código são aplicados uma ou mais estruturas de dados de configuração para gerar um programa de lógica de orientação. O sistema recebe entrada (210) que reflete uma situação de campo no mundo real. Um módulo processador (150) do sistema aplica o programa de lógica de orientação gerado (130) à entrada recebida (210) para gerar uma instrução de mistura de produtos de proteção vegetal (140) aplicável à situação de campo no mundo real.

Description

“MÉTODO IMPLEMENTADO POR COMPUTADOR, PRODUTO DE PROGRAMA DE COMPUTADOR PARA OTIMIZAÇÃO DA PROTEÇÃO AGRÍCOLA E SISTEMA DE COMPUTADOR " CAMPO DA INVENÇÃO
[001] A presente invenção refere-se, de forma geral, à otimização da proteção agrícola e, mais especificamente, à geração de códigos utilizada para construir automaticamente instruções de mistura de produtos de proteção para aparelhos que podem desdobrar uma mistura de produtos de proteção agrícola para uma safra no campo.
ANTECEDENTES DA INVENÇÃO
[002] Produtos de proteção agrícola (incluindo pelo menos produtos de proteção agrícola químicos e produtos de proteção agrícola biológicos) são utilizados no cultivo de safras para aumentar o rendimento.
Preferencialmente, os produtos de proteção agrícola são produtos de proteção agrícola químicos. A expressão “proteção agrícola”, da forma utilizada no presente, inclui, mas sem limitações, proteção agrícola química, fertilização e proteção agrícola biológica. Preferencialmente, proteção agrícola é proteção agrícola química. Exemplos de produtos de proteção agrícola químicos são: piraclostrobina, azoxistrobina, picoxistrobina, fluxapiroxad, ciproconazol, metconazol, epoxiconazol, mefentrifluconazol, boscalid, cresoxim-metil, dimoxistrobina, triticonazol, tiofanato-metil, fipronil, broflanilida, abamectina, afidopiropen, alfa-cipermetrina, clorfenapir, clorantraniliprol, ciantraniliprol, metaflumizona, piridaben, teflubenzuron, tiametoxam, imidacloprid, sulfoxaflor, aminopiralid, dicamba, diflufenzopir, glifosato, imazapir, metazaclor, ácido 2,4- diclorofenoxiacético (2,4-D), cinmetilina, pendimetalina, saflufenacil, tembotriona, topramezona ou produtos com base nesses ingredientes ativos. Exemplos de produtos de proteção agrícola biológicos são: Bacillus amyloliquefaciens (um exemplo de produto com base em Bacillus amyloliquefaciens, linhagem MBI600, é Serifel®), Beauveria bassiana (um exemplo de produto com base em Beauveria bassiana é Broadband®), Bacillus firmus, Bacillus subtilis, Bradyrhizobium, Bacillus pumilus, Bacillus licheniformis, Paenibacillus polymyxa, Paenibacillus epiphyticus, Pasteuria nishizawae, Penicillium bilaiae ou produtos com base nesses micro-organismos, bem como ingredientes ativos bioquímicos tais como fusaricidinas e cis-jasmone, ou produtos com base nesses ingredientes ativos.
[003] Safra, da forma utilizada no presente, é uma planta ou produto vegetal que pode ser cultivado e colhido no campo. É fundamental para o aumento do rendimento, entretanto, aplicar os produtos de proteção agrícola corretos, para uma safra específica, no momento certo ao alvo certo.
O produto de proteção vegetal pode incluir ingredientes ativos isolados, combinações de ingredientes ativos ou combinações de adjuvantes. Em outras palavras, produtos de proteção vegetal, da forma utilizada no presente, incluem, mas sem limitações, ingredientes ativos, composições, misturas e formulações que compreendem um ou mais ingredientes ativos, formulantes, coformulantes, adjuvantes, inertes, solventes e água. “Alvo”, da forma utilizada no presente, descreve uma infestação específica ou doença vegetal específica que pode ser tratada por meio de uma medida de proteção agrícola. A medida de proteção agrícola pode incluir a aplicação de um ou mais produtos de proteção vegetal à safra afetada. Exemplos de safras são cereais, canola oleaginosa, milho, batatas, beterraba, arroz, soja, cana de açúcar, algodão, frutas, verduras e legumes. Infestações incluem, mas sem limitações, infestações microbianas, infestações de insetos pragas, infestações de ervas ou quaisquer desafios referentes à saúde vegetal, nutrição vegetal ou crescimento vegetal. De forma geral, pelo menos algumas centenas de alvos são conhecidos na técnica, incluindo ervas, gramíneas, patógenos fúngicos, bacterianos ou virais e pragas animais, especialmente insetos. Muitos produtos de proteção vegetal diferentes são disponíveis para combater essas infestações ou doenças. Esses produtos podem ser divididos em segmentos, tais como: inseticidas (i), fungicidas (f), herbicidas (h), estabilizantes de nitrogênio (n), reguladores do crescimento (g), nematicidas, molusquicidas, raticidas, acaricidas, bactericidas, alguicidas, antimicrobianos, fertilizantes, corretores do solo e aditivos do solo. Compostos disponíveis comercialmente podem ser encontrados em The Pesticide Manual, 17ª Edição, British Crop Protection Council (2015), entre outras publicações, e seu banco de dados online https://www.bcpc.org/product/bcpc-online-pesticide-manual-latest- version.
[004] Em alguns casos, quando uma safra for afetada por um ou mais alvos, pode ser conveniente combinar diversos produtos em uma mistura de produtos (por exemplo, mistura de pulverização de produtos de proteção vegetal correspondentes) que é aplicada à safra correspondente. A seleção dos produtos corretos depende, entretanto, de muitos fatores, tais como o estágio de crescimento da safra, condições meteorológicas, estação atual, produtos recentemente aplicados etc. Para misturas de produtos de proteção, parâmetros de seleção adicionais podem ser compatibilidade de produtos, adaptação da taxa de uso, restrições de registro, questões de registro ou combinação de modo de ação preferível. Sistemas e métodos de aplicação de misturas líquidas são descritos, por exemplo, em WO 2013/087103 A1.
[005] Após a detecção de um alvo para uma safra específica no campo, pode ser conveniente determinar instantaneamente a mistura de pulverização apropriada. As condições meteorológicas podem alterar-se, por exemplo, tornando obrigatória a realização de aplicação imediata da mistura de pulverização no campo. Consequentemente, a determinação quase em tempo real da mistura de pulverização torna-se necessidade para rendimento eficiente. Além disso, novos produtos podem tornar-se disponíveis, o que pode causar novas interdependências com outros produtos. Isso pode exigir reavaliação completa de todas as condições de aplicação dos diversos produtos durante os vários estágios de crescimento da safra. As interdependências e condições são tão complexas que o ser humano não é capaz de realizar determinação das instruções de mistura de produtos apropriadas para aparelhos de pulverização correspondentes.
DESCRIÇÃO RESUMIDA DA INVENÇÃO
[006] Existe, portanto, a necessidade de fornecer soluções técnicas que permitam a determinação de uma mistura apropriada de produtos de proteção vegetal quase em tempo real para uma safra específica em um estágio de crescimento da safra específico e para pelo menos um alvo específico, descrevendo-se a situação e a condição no campo. A expressão “mistura de produtos de proteção vegetal” destina-se a também incluir o caso em que um único produto de proteção vegetal é utilizado a 100%.
[007] Realizações da presente invenção, conforme descrito nas reivindicações independentes, fornecem um sistema, método e produto de programa de computador para otimizar a proteção agrícola química por meio de determinação, quase em tempo real, de uma instrução de mistura de pulverização apropriada para uma dada situação de safra (ou seja, safra, estágio de crescimento e alvo) que permite aplicação imediata da mistura de pulverização para rendimento aprimorado.
[008] Em primeira etapa de um método implementado por computador para otimização da proteção agrícola química, um sistema de computador que executa o método tem acesso a uma ou mais estruturas de dados de configuração denominadas “estruturas de dados” a seguir. Essas uma ou mais estruturas de dados podem ser armazenadas pelo componente de armazenamento do próprio sistema de computador ou podem ser armazenadas por um dispositivo de armazenagem de dados remoto (por exemplo, em um computador servidor remoto ou sistema de banco de dados remoto). No caso de acesso remoto a uma ou mais estruturas de dados armazenadas remotamente, o sistema de computador pode utilizar interfaces de comunicação padrão e protocolos de comunicação padrão para acesso à(s) estrutura(s) de dados. Uma ou mais estruturas de dados incluem campos de dados para armazenar registros de dados de vários tipos. Deve-se observar que, na descrição a seguir, a expressão “campo (de dados)”, quando utilizada no contexto de registros de dados armazenados em uma ou mais estruturas de dados, refere-se a um campo de propriedade da estrutura de dados onde os valores correspondentes são armazenados para os diversos registros de dados. Às vezes, o termo “campo” é também utilizado com relação a um campo agrícola de uma fazenda onde é cultivada a safra. Para os técnicos no assunto, o significado correspondente é claro a partir do contexto da descrição. Para evitar qualquer confusão, os campos de dados da(s) estrutura(s) de dados às vezes são também denominados propriedades ou campos de propriedade.
[009] Primeiro tipo de registro de dados designa dados de safra em que um registro de dados de safra armazena pelo menos uma informação identificadora de safra para uma safra específica e informações relativas à capacidade de aplicação de diversos segmentos de produtos de proteção para a safra específica. Exemplos de segmentos de produtos de proteção incluem, mas sem limitações: inseticidas (i), fungicidas (f), herbicidas (h), estabilizantes de nitrogênio (n), reguladores do crescimento (g), nematicidas, molusquicidas, raticidas, acaricidas, bactericidas, alguicidas, antimicrobianos, fertilizantes, corretores do solo, aditivos do solo e combinações de dois ou mais dos mencionados segmentos. Registro de dados de safra pode possuir, por exemplo, um campo identificador de safra e um ou mais campos de propriedade de safras. O identificador de safra pode ser um número ou nome.
Propriedades de safras podem incluir, por exemplo, o nome da safra,
informações geográficas sobre o local em que a safra é cultivada, vários segmentos de produtos de proteção agrícola etc.
[0010] Segundo tipo de registro de dados indica dados de orientação relativos a dados de safra correspondentes. Dados de orientação armazenam informações relativas a recomendações para uma safra específica com relação a segmentos de produtos de proteção correspondentes. Registro de dados de orientação podem, por exemplo, possuir um identificador de orientação sobre proteção agrícola associado a uma série de propriedades de orientação para a safra correspondente. As propriedades de orientação incluem pelo menos um código de estágio de crescimento para a safra correspondente e uma ou mais propriedades de recomendação. O identificador de orientação pode ser, por exemplo, um número ou nome. A safra à qual se refere a orientação, por exemplo, pode ser indicada em um campo que armazena o identificador de safra do registro de dados de safra correspondente. Outros mecanismos indicadores podem ser utilizados pelos técnicos no assunto. O código de estágio de crescimento pode ser código BBCH, código Zadoks, código Feekes, código Haun ou qualquer outro código que seja apropriado para indicar o estágio de crescimento da safra em granularidade suficiente.
[0011] Terceiro tipo de registro de dados indica dados de produtos de proteção agrícola relativos a dados de orientação correspondentes.
Registros de dados de produtos de proteção agrícola armazenam informações identificadoras sobre produtos de proteção para alvos específicos e suas propriedades de aplicação com relação a orientações relacionadas, bem como condições específicas de campo. Um registro de dados de produtos de proteção agrícola, por exemplo, pode possuir identificador de produto de proteção agrícola (número ou nome) e uma ou mais propriedades de produtos de proteção para um alvo correspondente. Cada alvo corresponde a uma infestação específica ou doença agrícola específica. Condições específicas de campo variam de um campo para o outro e podem ser elementos como o tipo de solo, condições da água e aplicações anteriores no campo.
[0012] Em segunda etapa, o sistema de computador tem acesso a uma série de trechos de código. Cada trecho de código possui uma condição relativa a pelo menos uma propriedade de campo de dados da uma ou mais estruturas de dados ou ao resultado de outro trecho de código. Além disso, um trecho de código inclui lógica de programa genética associada à condição.
Cada campo de propriedade definido nas estruturas de dados de configuração é utilizado na condição de pelo menos um trecho de código. Em outras palavras, a condição do trecho é verificar o valor de propriedade de campo de dados de pelo menos uma propriedade de configuração correspondente em busca de um registro de dados específico. A parte de lógica de programa genérico do trecho de código pode ser observada como modelo de código genérico que define como deve ser gerado o código executável, dependendo do resultado da verificação de condição com base em valores de configuração correspondentes na(s) estrutura(s) de dados de configuração. Como todas as propriedades de configuração (ou seja, todos os campos de propriedade da(s) estrutura(s) de dados) são verificadas por condições de trechos de código correspondentes, o sistema pode gerar código executável para cada propriedade de configuração. A opção de uso do resultado de um trecho de código nas condições de outros trechos permite refletir interdependências entre várias propriedades de configuração ao longo de diversos níveis hierárquicos.
Árvores de decisão complexas com diversos níveis hierárquicos podem, portanto, ser modeladas na lógica de orientação para determinar instruções de mistura de produtos apropriadas.
[0013] A geração de código executável é realizada em seguida em terceira etapa por meio de aplicação da série de trechos de códigos a uma ou mais estruturas de dados para gerar programa de lógica de orientação transformando a lógica de programa genérica de cada trecho de código em lógica de programa executável de acordo com as condições correspondentes e os valores de campo correspondentes. Nesta etapa, o sistema gera, para todos os registros de dados da(s) estrutura(s) de dados de configuração, a lógica de programa executável, pois todas as propriedades de configuração são verificadas por um ou mais trechos de código associados por meio da condição correspondente e gera uma parte correspondente de um programa de lógica de orientação executável quando o modelo de código genérico é configurado de acordo com os valores de propriedades de configuração. Com este propósito, um gerador do sistema inclui um programa que é configurado para dispor todos os trechos de código na ordem correta e substituir espaços reservados nos trechos de código por dados de configuração da(s) estrutura(s) de dados de configuração. A aplicação dos trechos de códigos às estruturas de dados de configuração gera um programa executável que implementa árvores de decisão que são definidas pelas estruturas de dados. Essas árvores de decisão fornecem orientação ao sistema sobre como gerar uma orientação específica para uma mistura de produtos de proteção que deverá ser aplicada em uma dada situação de safra específica (a situação em um campo no mundo real). A ordem correta dos trechos de código é, portanto, definida na função geradora de acordo com as árvores de decisão.
[0014] A situação de safra específica de interesse é recebida na forma de entrada que inclui pelo menos um identificador de safra específico, um identificador alvo específico e um código de estágio de crescimento específico que representa a situação de campo no mundo real para a safra (situação de safra). A situação de safra pode ser recebida como entrada de um usuário humano (por exemplo, um agricultor) ou pode ser recebida de outro sistema. Sistemas de câmara modernos podem ser montados, por exemplo, sobre um trator no campo e ser configurados para identificar automaticamente o tipo de safra, potenciais doenças e estágio de crescimento da safra por meio de aplicação de métodos de processamento de imagens de diagnóstico e fornecer o resultado de diagnóstico para o sistema de computador para geração de orientações. Sistemas do tipo de injeção direta disponíveis comercialmente podem ser controlados por instruções de controle que refletem a orientação gerada.
[0015] O sistema aplica em seguida o programa de lógica de orientação gerado à entrada recebida e gera uma instrução de mistura de produtos de proteção vegetal para tratamento da situação de campo no mundo real. Em outras palavras, a instrução de mistura de produtos determina uma mistura específica de produtos de proteção que devem ser aplicados à situação de safra correspondente, conforme definido pelo identificador de safra com o identificador alvo específico e o código de estágio de crescimento específico.
Como todas as propriedades de configuração são cobertas pelo programa de lógica de orientação gerado, todo o conhecimento referente às árvores de decisão com todas as interdependências entre várias propriedades de configuração, conforme definido nos diversos trechos de código, é incluído na lógica de programa de orientação executável gerada. Este programa pode ser executado instantaneamente (quase em tempo real) em resposta ao recebimento da entrada sobre a situação da safra. O resultado desta etapa é uma orientação que fornece informações sobre um ou mais produtos de proteção a serem aplicados à safra na situação atual. Em outras palavras, a instrução de mistura de produtos de proteção vegetal fornecida inclui as informações sobre o(s) identificador(es) de produtos correspondentes e as quantidades correspondentes a serem adicionadas à mistura de produtos de proteção com o propósito de otimizar o rendimento no campo.
[0016] Em uma realização, a instrução de mistura de produtos de proteção vegetal gerada é fornecida como instrução de controle para um aparelho pulverizador, a fim de gerar uma mistura de tanque com um ou mais produtos de proteção vegetal de acordo com o programa de lógica de orientação gerado. Um aplicativo pulverizador inclui tipicamente um ou mais tanques para armazenar os produtos de proteção correspondentes, meios de mistura para misturar os produtos de proteção de acordo com a instrução de mistura de produtos e uma ou mais válvulas de pulverização para distribuir a mistura de produtos resultante no campo onde é cultivada a safra com o pelo menos um alvo. Alguns dos aparelhos pulverizadores são disponíveis comercialmente. Nesta realização, a instrução de controle é gerada em formato legível por máquina que é apropriado para controlar válvulas de pulverização do aparelho pulverizador, de forma que a mistura de produtos possa ser produzida de acordo com a instrução de mistura de produtos. É disponível equipamento agrícola moderno que permite a integração desse aparelho pulverizador com os tanques de produto correspondentes às máquinas utilizadas no campo. Consequentemente, esta realização permite que os fazendeiros apliquem imediatamente a mistura de produtos apropriada para a situação de safra atual automaticamente ao cruzarem o campo. Aparelhos pulverizadores são convenientemente utilizados para mistura de produtos de proteção líquidos. Alguns produtos de proteção são de natureza sólida. Para esses produtos de proteção, os técnicos no assunto utilizarão dispositivos de mistura mecânicos apropriados para implementar o conceito da presente invenção.
[0017] Em uma realização, o sistema de computador é adicionalmente configurado para gerar casos de teste para verificar a lógica de programa gerada, a fim de evitar o desenvolvimento da lógica de programa para uso de produção caso a execução gere resultados de instruções de mistura que sejam inconsistentes com os casos de teste gerados. Em outras palavras, o desdobramento da lógica de programa executável para uso de produção somente é permitida em casos em que a verificação da lógica de programa fornece apenas instruções de mistura de acordo com casos de teste positivo. Esta realização contribui para maior robustez da lógica de programa gerada. Ela reduz, portanto, o risco de distribuição de produtos de proteção no campo que pode causar danos à safra cultivada ou podem não estar alinhados com a prática local do país correspondente.
[0018] Aspectos adicionais da presente invenção serão realizados e atingidos por meio dos elementos e combinações particularmente ilustrados nas reivindicações anexas. Deve-se compreender que a descrição geral acima e a descrição detalhada a seguir são apenas exemplos e explicações e não restringem a presente invenção.
BREVE DESCRIÇÃO DAS FIGURAS
[0019] A Fig. 1 é um diagrama de blocos simplificado de um sistema de computador para otimização da proteção agrícola química de acordo com uma realização.
[0020] A Fig. 2 é um fluxograma simplificado de um método de otimização da proteção agrícola química realizado pelo sistema de computador de acordo com uma realização.
[0021] A Fig. 3A ilustra a estrutura de trechos de código e suas interdependências.
[0022] A Fig. 3B ilustra um exemplo de estrutura de um gerador de acordo com uma realização.
[0023] A Fig. 4 é um exemplo de estruturas de dados de configuração utilizadas para geração de lógica de orientação de acordo com uma realização.
[0024] A Fig. 5 exibe uma realização do sistema de computador com módulos de extensão que implementam uma função de verificação para lógica de programa de orientação gerada.
[0025] A Fig. 6 é um fluxograma simplificado que ilustra etapas opcionais para verificação da lógica de programa.
[0026] A Fig. 7 ilustra exemplos de casos de teste armazenados em um banco de dados de casos de teste.
[0027] A Fig. 8 é um diagrama que exibe um exemplo de dispositivo de computador genérico e de um dispositivo de computador móvel genérico, que podem ser utilizados em realizações da presente invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
[0028] A Fig. 1 é um diagrama de blocos simplificado de um sistema 100 de otimização da proteção agrícola química de acordo com uma realização da presente invenção. A Fig. 1 será discutida no contexto da Fig. 2, que é um fluxograma simplificado de um método 1000 de otimização da proteção agrícola química realizado pelo sistema 100 da Fig. 1, de acordo com uma realização da presente invenção. Os números de referência podem referir- se, portanto, à Fig. 1 ou à Fig. 2.
[0029] O sistema de computador possui um módulo gerador 120 que pode gerar lógica de programa de orientação executável 130 com base em dados de configuração correspondentes. A lógica de programa de orientação 130 implementa o conhecimento sobre qual(is) produto(s) de proteção agrícola deverá(ão) ser aplicado(s) a qual(is) safra(s) em qual situação. Uma situação específica (situação de campo) é, portanto, caracterizada porque uma safra específica semeada no campo exibe indicadores para um alvo específico. O programa de lógica de orientação 130, quando aplicado à situação específica, identifica um ou mais produtos de proteção apropriados para tratar o alvo específico quase em tempo real e gera uma instrução de mistura 140 como a orientação para a mistura de produtos correspondente que é apropriada para combater o alvo na situação específica.
[0030] A situação de campo específica é recebida como entrada
210. A entrada 210 inclui pelo menos um identificador de safra específico, um identificador de alvo específico e um código de estágio de crescimento específico. Em outras palavras, a entrada fornece as informações sobre a safra que é cultivada no campo correspondente, sobre o alvo que afeta a safra e qual pode ser um obstáculo para a obtenção de rendimento eficiente no campo e as informações sobre o estágio de crescimento atual da safra (situação de campo). Além dessa informação, a entrada pode incluir mais informações opcionais para especificar a situação de campo com mais detalhes. Exemplos de informações de entrada opcionais são exibidos mais abaixo na descrição.
[0031] O gerador 120 é acoplado comunicativamente a uma ou mais estruturas de dados de configuração 220. A(s) estrutura(s) de dados de configuração pode(m) ser armazenada(s) em um dispositivo de armazenagem remoto que é acessível pelo gerador 120 por meio de uma interface de comunicação padrão. Alternativamente, a(s) estrutura(s) de dados de configuração pode(m) ser armazenada(s) em um componente de memória do sistema de computador 100. O gerador 120 tem acesso 1100 à(s) estrutura(s) de dados de configuração 220 para recuperar dados de configuração que são utilizados em seguida para gerar a lógica de programa de orientação 130. Os dados de configuração são armazenados em campos de dados de uma ou mais estruturas de dados de configuração. Podem ser diferenciados três tipos de dados de configuração: dados de safra 221, dados de orientação 222 e dados de produtos de proteção vegetal 223. Os técnicos no assunto podem, por exemplo, implementar a(s) estrutura(s) de dados de configuração utilizando tabelas de bancos de dados relacionais, arquivos XML ou qualquer outra construção de estrutura de dados que seja apropriada para armazenar dados estruturados. O resumo a seguir dos diversos tipos de dados de configuração é complementado pelo exemplo detalhado da descrição da Fig. 4.
[0032] Dados de safra 221: um registro de dados de safra 221-1 armazena pelo menos informações identificadoras de safras para uma safra específica e propriedades relativas à capacidade de aplicação de diversos segmentos de produtos de proteção para a safra específica. O identificador de safras é representação exclusiva de uma safra correspondente. Este pode ser um sinal exclusivo como, por exemplo, um número exclusivo ou nome exclusivo. Campos de propriedade de um registro de dados de safras podem incluir informações relativas a uma região na qual a safra está crescendo ou informações sobre potenciais segmentos de produtos de proteção. Exemplos de segmentos de produtos de proteção conhecidos são: inseticidas, fungicidas, herbicidas, reguladores do crescimento, estabilizantes de nitrogênio ou um segmento que se estende ao longo de uma combinação de dois ou mais desses segmentos de produtos de proteção.
[0033] Dados de orientação 222: registro de dados de orientação específico refere-se a um registro de dados de safra correspondente. Cada registro de dados de orientação armazena informações identificadores de orientação e propriedades relativas a recomendações para a safra relacionada com relação a um segmento de produto de proteção correspondente. A relação entre o registro de dados orientadores específicos e o registro de dados de safra relacionado pode ser implementada, por exemplo, com um campo de dados no registro de dados de orientação que armazena um indicador para o registro de dados de safra correspondentes. Os campos de propriedade dos registros de dados de orientação incluem pelo menos um código de estágio de crescimento que indica o estágio de crescimento da safra à qual é aplicável o registro de dados de orientação.
[0034] Dados de produtos de proteção agrícola 223: um registro de dados de produtos de proteção agrícola refere-se a um registro de dados de orientação correspondente. Cada registro de dados de orientação armazena informações de identificação sobre um produto de proteção específico potencialmente aplicável a um ou mais alvos. Em outras palavras, um identificador exclusivo de produto de proteção é armazenado em conjunto com informações que indicam pelo menos um alvo que descreve uma infestação específica ou doença vegetal que pode ser tratada por meio de uma medida de proteção vegetal que envolve a aplicação do mencionado produto de proteção.
As informações que indicam o pelo menos um alvo podem ser um valor de campo de dados que indica o nome de um ou mais alvos ou podem ser um indicador (referência) de uma estrutura de dados na qual os alvos correspondentes são relacionados. A relação entre o registro de dados de produtos de proteção agrícola e um registro de dados de orientação relacionado pode ser implementada, por exemplo, com um campo de dados no registro de dados de produtos de proteção agrícola que armazena um indicador para o registro de dados de orientação correspondentes.
[0035] A(s) estrutura(s) de dados de configuração pode(m) ser observada(s) como a implementação de uma base de conhecimento que reflete árvores de decisão relativas à aplicação de certos produtos de proteção a safras correspondentes sob certas situações de campo. Esses dados de configuração são agora convertidos pelo gerador 120 em lógica de programa 130 com instruções de programa que refletem a implementação da árvore de decisões em formato executável e legível por computador.
[0036] Com este propósito, o gerador 120 tem acesso adicional 1200 a uma série de trechos de código 230. Os trechos de código podem ser armazenados em um dispositivo de armazenamento remoto que é acoplado em comunicação ao sistema de computador 100 ou podem ser armazenados em um componente de memória interno do sistema de computador 100. Um trecho de código 231, 232, 233, conforme utilizado no presente, é um código de software genérico que pode ser utilizado para gerar uma parte de código executável com base em dados de configuração correspondentes. Um trecho de código genérico inclui um modelo de código não executável que se torna executável por meio de configuração.
[0037] Com referência rapidamente à Fig. 3A, cada trecho de código 231 possui uma condição 231-c referente a pelo menos um campo de propriedade de uma ou mais estruturas de dados de configuração 221, 222, 223 ou a um resultado 232-r de outro trecho de código 232. Além disso, cada trecho de código 231, 232 inclui lógica de programa genérica 231-r, 232-r associada à condição 231-c, 232-c. A lógica de programa genérica fornece um modelo da parte do trecho de código que fornece resultado após a transformação do trecho em lógica executável com base nos dados de configuração e sua execução por um módulo processador 150 do sistema de computador 100. Cada campo de propriedade da(s) estrutura(s) de dados 220 é, portanto, utilizado na condição de pelo menos um trecho de código. Em outras palavras, cada valor de propriedade em qualquer uma das estruturas de dados de configuração é coberto por pelo menos um trecho de código que realiza alguma verificação sobre o mencionado valor de propriedade e gera lógica de programa correspondente, dependendo dos dados de configuração correspondentes.
[0038] Voltando agora para as Figs. 1 e 2, o gerador 120 aplica adicionalmente 1300 a série de trechos de código 230 a uma ou mais estruturas de dados de configuração 220 para gerar um programa de lógica de orientação transformando a lógica de programa genérica de cada trecho de código em lógica de programa executável 130 de acordo com as condições correspondentes e os valores de campo de dados correspondentes. Isso significa que o gerador está gerando lógica de programa executável a partir dos trechos de código por meio de sua disposição em ordem correta e substituição de espaços reservados nos modelos de código genérico dos trechos de código por dados de configuração correspondentes da(s) estrutura(s) de dados de configuração. A ordem correta é definida como a ordem que gera um programa que pode ser conduzido sem erros. Em outras palavras, a ordem correta considera possíveis dependências entre trechos, de forma que cada entrada exigida por um trecho de código tenha sido fornecida como saída por um trecho anterior. Um exemplo detalhado com exemplos de trechos de códigos e um exemplo resultante de lógica de programa de orientação executável é descrito no contexto da Fig. 4. Com referência rapidamente à Fig. 3B, o gerador 120 inclui uma lista de instruções ordenadas S1 a Sn, em que cada instrução indica um trecho de código correspondente. No exemplo, a instrução S1 indica trecho de código 232, a instrução S2 indica trecho de código 239 e a instrução Sn indica trecho de código 231. Isso permite a geração das partes de código executáveis com base nos trechos correspondentes na ordem correta (que define a sequência de execução) com os dados de configuração 220 indicados pelos trechos de código.
[0039] Voltando para as Figs. 1 e 2, o sistema de computador 100 possui adicionalmente uma interface 100 para receber 1400 uma entrada 210 que compreende pelo menos um identificador de safra específica, um identificador de alvo específico e um código de estágio de crescimento específico. Conforme mencionado anteriormente, esta entrada pode ser observada como conjunto de dados mínimo para descrever a situação de campo (agrícola) onde a safra é cultivada. A entrada pode ser aprimorada por informações opcionais, como, por exemplo, um indicador de campo que especifica um campo específico em uma fazenda onde está crescendo a safra, indicadores referentes a aplicações de produtos de proteção anteriores, umidade do solo etc. Este tipo de informação opcional pode ser tipicamente recuperado de um sistema de gerenciamento de fazendas, a partir de observações meteorológicas atuais ou passadas, pode ser fornecido manualmente na forma de entrada do usuário (por exemplo, o agricultor) etc.
[0040] Um módulo processador 150 do sistema de computador 100 aplica 1500 o programa de lógica de orientação gerado 130 à entrada recebida 210, a fim de gerar uma instrução de mistura de produtos de proteção agrícola 140 aplicável ao identificador de safra correspondente com o identificador de alvo específico e o código de estágio de crescimento específico (ou seja, a situação de campo fornecida pela entrada 210). O módulo processador 150 pode ser implementado como compilador ou interpretador com ambiente de tempo de condução que é capaz de executar a lógica de programa gerada 130. A entrada 210 fornece os parâmetros para a lógica de programa 130 que são necessários para que o programa gerado seja executado. O resultado da execução de lógica de programa é a instrução de mistura 140 que inclui as informações sobre quais dos produtos de proteção disponíveis deverão ser aplicados à safra no campo para fornecer tratamento com relação ao alvo identificado. Deve-se observar que a instrução pode também incluir um único produto de proteção (100%) ou pode incluir diversos produtos de proteção com percentuais correspondentes ou quantidades absolutas.
[0041] A instrução de mistura 140 pode ser fornecida em formato legível para seres humanos, de forma que o usuário possa então controlar um aparelho pulverizador 250 para gerar uma mistura de tanque com um ou mais produtos de proteção agrícola de acordo com o resultado fornecido pela execução do programa de lógica de orientação gerado. Consequentemente, o agricultor no campo pode fornecer a situação de campo atual para o sistema de computador 100. Um conjunto de entrada mínimo 210 de parâmetros de campo pode ser automaticamente ampliado por informações específicas de campo armazenadas em um sistema de gestão de campo. A entrada é processada em seguida pelo módulo processador 150 quase em tempo real e as instruções de mistura 140 podem também ser fornecidas quase em tempo real para o agricultor. Isso permite que o agricultor reaja instantaneamente à situação de campo atual com um produto de proteção ou mistura de produtos ideal para iniciar o tratamento com relação ao alvo. Essa aplicação de mistura de pulverização pode ter época crítica. Caso se preveja infestação de Fusarium, por exemplo, o sistema pode reagir imediatamente com recomendação de produto apropriada com base na situação de infestação e no tempo. É, portanto, conveniente atender à janela de tempo de aplicação de produto muito estreita de um a quatro dias que dificilmente é atendida em operações agrícolas práticas. Outro exemplo é uma alteração prevista das condições meteorológicas (por exemplo, previsão de chuvas, temporais, queda de temperatura etc.) que pode restringir a janela de tempo para tratamento bem sucedido em um intervalo de tempo limitado a partir do momento atual. Caso seja prevista chuva para o dia seguinte, por exemplo, o agricultor pode ter apenas esse dia para aplicar o tratamento correto em todo o campo. A determinação quase em tempo real da instrução de mistura de produtos apropriada 140 é, portanto, conveniente para tratamento otimizado e proteção agrícola química.
[0042] Pode ser conveniente utilizar o resultado para controle totalmente automatizado desse aparelho pulverizador. Nessa realização, o sistema de computador 100 inclui adicionalmente um módulo de conversão que converte a instrução de mistura de produtos de proteção vegetal gerada 140 em instrução de controle 240 para um aparelho pulverizador 250, a fim de gerar uma mistura de tanque com um ou mais produtos de proteção vegetal de acordo com o programa de lógica de orientação gerado. A instrução de controle 240 pode ser então fornecida 1600 para o aparelho pulverizador 250 pela interface 110. O módulo de conversão pode ser implementado como parte da interface 110.
[0043] A Fig. 4 é um exemplo de estruturas de dados de configuração 221, 222, 223 utilizadas para geração de lógica de programa de orientação de acordo com uma realização. No exemplo da Fig. 4, os dados de configuração são armazenados em tabelas de bancos de dados de um banco de dados de relações. Os técnicos no assunto podem utilizar outras estruturas de dados para armazenar os dados de configurações, tais como um banco de dados de gráficos ou banco de dados XML.
[0044] No exemplo, as tabelas 221, 222, 223 ilustram possíveis estruturas de dados com exemplos de registros de dados para dados de safra, dados de orientações e dados de produtos de proteção vegetal, respectivamente. Neste exemplo simplificado, um campo de cevada de inverno (safra) é infectado por afídeos (alvo). Inseticidas específicos (i) são disponíveis para mistura e distribuição para o campo de cevada de inverno. O relatório descritivo explica, por exemplo, como um computador gera lógica de programa, que é – por simplicidade – especializada para lidar com inseticidas, como a lógica de programa pode ser verificada antes do uso e como a lógica de programa auxilia o agricultor na seleção de um inseticida específico em quantidades de aplicação específicas.
[0045] Um registro de dados de safra 221-1 possui identificador de safra 221-ID e uma ou mais propriedades de safras 221-P1 a 221-Pn. As linhas exibidas nas tabelas são abreviações dos valores realmente armazenados. No exemplo, 222-P1 armazena o nome em inglês “Winterbarley” (“WBar indica Winterbarley, cevada de inverno). 221-P2 armazena o código de safra eppo (ou EPPO) HORVW (abreviado “HORV” no presente). 221-P3 armazena o nome de safra em alemão “Wintergerste” (WGer). 221-4. Naturalmente, um nome de safra é suficiente e as traduções para outros idiomas são opcionais. Além disso, as informações armazenadas em 221-P4/P5 sobre a região onde a safra é cultivada “Alemanha/Rheinland Pfalz” (DE/RP) é opcional. No exemplo, 221- P6 a 221-Pn incluem as informações se produtos de um segmento de produto específico (por exemplo, inseticida 221-P6 ou fungicida 221-P7) podem ser aplicados à safra de cevada de inverno. O valor “verdadeiro” indica que o segmento de produto correspondente é aplicável.
[0046] A tabela de dados de orientação 222 armazena registros de dados de orientação relativos a dados de safra correspondentes. Cada registro de dados de orientação 222-1, 222-2, 222-3 possui um identificador de orientação de proteção agrícola 222-ID associado a uma série de propriedades de orientação 222-P*. Além disso, 222-PaID armazena a ID do registro de dados de safra ao qual se refere a orientação. No exemplo, todos os três registros de dados de orientação referem-se ao registro de dados de safra 221-
1. Cada registro de dados de orientação armazena pelo menos um código de estágio de crescimento que indica o estágio de crescimento da safra correspondente à qual se refere a orientação. No exemplo, uma faixa de códigos de estágio de crescimento é definida por meio dos campos de propriedade 222-P1 (de) e 222-P2 (para). No exemplo, códigos de BBCH são armazenados nesses campos. O registro de dados 222-1 especifica uma faixa de 11 a 13, o registro de dados 222-2 de 24 a 39 e o registro de dados 222-3 de 13 a 39. Os campos 222-P3 e 222-P4 fornecem informações sobre a quantidade de água que deve ser aplicada para a orientação correspondente.
Para o registro de dados 222-1, por exemplo, ela deve ser de 400 l/ha. O campo 222-P5 especifica o segmento de produto ao qual se refere a orientação. A orientação 222-1 refere-se, por exemplo, a inseticidas “i”, enquanto as orientações 222-2 e 222-3 referem-se a herbicidas “h”. Valores de campo nulos indicam que o campo correspondente não se aplica ao registro de dados de orientação correspondente.
[0047] A tabela de dados de produto de proteção agrícola 223 armazena os registros de dados de produtos de proteção vegetal 223-1, 223-2, 223-3 e 223-4. Cada registro de dados de produtos de proteção agrícola possui um identificador de produto de proteção vegetal 223-ID e refere-se a um registro de dados de orientação correspondente. No exemplo, esta relação é armazenada no campo 223 PaID que indica a ID do registro de dados de orientação relacionado. Os registros de dados de produtos de proteção 223-1 e 223-2, por exemplo, referem-se a registros de dados de orientação 222-1 e 222-2, respectivamente. Os dois registros de dados de produtos de proteção vegetal 223-3 e 223-4 referem-se ao registro de dados de orientação 222-3.
Além disso, o campo de propriedade 223-P1 armazena um nome alvo se o registro de dados correspondente referir-se ao alvo. Pode haver diversos campos de propriedade para especificar informações alvo ou pode haver diversos alvos especificados no mesmo campo de propriedade (por exemplo, separados por um sinal separador correspondente). No exemplo, os registros de dados de produtos de proteção 223-1 e 223-2 referem-se a um alvo denominado APHISP (abreviado no presente "ABHIS”). Os outros dois registros de dados não se referem a um alvo especificado por este campo de propriedade. O campo 223-P2 armazena os nomes de produtos de proteção Fastac SC (Fastac), Biathlon 4D (Biath) e Dash E.C. (Dash). No exemplo, 223- P3 armazena os números de registro para os produtos correspondentes. 223- P4 e 223-P5 armazenam as taxas de aplicação para os produtos correspondentes. 223-P6 armazena a estação em que o produto pode ser aplicado (por exemplo, outono (AUT) ou primavera (SPR)).
[0048] Em qualquer dos três exemplos de estruturas de dados para armazenagem de dados de configuração, pode haver muito mais campos de propriedade para fornecer informações adicionais que podem ser relevantes para certas orientações. Os exemplos de código a seguir ilustram como o gerador gera partes da lógica de programa de orientação executável com base no exemplo de dados de configuração. Em primeiro lugar, é discutido um conjunto de trechos de código que formam a base da geração lógica. É descrito em seguida um exemplo de código JAVA que pode gerar lógica de orientação executável que é ilustrada como exemplo de código R. R é uma linguagem e ambiente de computação estatística e gráficos.
[0049] Exemplos de trechos de código: Nos exemplos de código a seguir, o sinal “#” indica um comentário ou explicação da parte de código correspondente. A parte de comentários é encerrada pelo final da linha. As variáveis utilizadas nos exemplos de código (por exemplo, cropName (221-P1), BBCHFrom (222-P1), BBCHto (222-P2), eppoCodes (223-P1), pName (223-P2) etc.) correspondem a campos de propriedade correspondentes da(s) estrutura(s) de dados de configuração.
Uma lista de exemplos de possíveis campos de propriedade que podem ser utilizados como dados de configuração é fornecida na Tabela 1.
[0050] O trecho de código a seguir é utilizado para gerar o cabeçalho de uma lógica de Inseticida R, por meio da adição do cropName correspondente que surge como variável na entrada recebida.
public static String generateHeadForInsecticideLogic(String cropName) { # method # name String s = "" + # define a string incluindo as linhas seguintes; # + (mais) indica que a string continua na linha seguinte # \n indica quebra de linha "insecticideLogic <- function() {\n"+ # nome da função em R " products <- matrix(,nrow=0,ncol=10,byrow=TRUE); \n" + # reinicia a matriz de produtos " recentBBCH <- getRecentCropsBBCH();\n"; # define uma chamada # para obter o valor BBCH, termina a string do trecho return s; # fornece o R-Code-Snippet-String composto }
[0051] O trecho de código a seguir é utilizado para iniciar um novo bloco de trecho de código para nova verificação de produto.
public static Object startNewProductCheck() { String s = "" + # inicia a string do trecho " dontUseIt <- FALSE;\n"; # inicia a variável, termina a string do trecho return s; # fornece a string do trecho }
[0052] O trecho de código a seguir é utilizado para verificar se o código BBCH solicitado (código de estágio de crescimento de safra incluído na entrada) encontra-se dentro das fronteiras dos valores BBCH-From 222-P1 e BBCH-To 222-P2. Este trecho de código também é um exemplo no qual a condição se refere ao resultado de outro trecho de código. O valor da variável “dontUseIt” é utilizado na condição “if” do trecho. O valor é, entretanto, definido como valor de resultado de outro trecho de código que é utilizado anteriormente.
public static String InbetweenBBCH(String BBCHFrom, String BBCHto) { # função que inclui dois parâmetros a serem definidos na string do trecho String s = "" + " if (isInbetweenBBCH("+BBCHFrom+","+BBCHto+", recentBBCH)==FALSE) {\n" + " dontUseIt <- TRUE; \n" + " }\n"; # este trecho verifica se o BBCH real encontra-se entre as fronteiras, que estão chegando como variáveis return s; # fornece a string do trecho }
[0053] O trecho de código a seguir é utilizado para verificar se o alvo solicitado é um alvo representado por um eppoCode para o qual se permite o uso do Produto ou, em outras palavras, se ele está presente nos registros de dados de produto 223-P1.
public static String ConsiderTheseTargetEppoCodes( # função que inclui String eppoCodes) { # variável com os códigos eppo alvo esperados String s = "" + # define a string " if ((isAtLeastOneOfTheTargetEppoCodes(\""+eppoCodes+"\")==FALSE)) {\n" + " dontUseIt <- TRUE; \n" + " }\n"; # termina a string do trecho return s; # fornece a string do trecho }
[0054] O trecho de código a seguir é utilizado para verificar se o dado número de aplicações por produto é menor que o número permitido de aplicações armazenado em um campo de propriedade dos registros de dados de produto 223-* (não exibido).
public static String ConsiderNumberOfApplicationsOfThisProduct( # função String pName, String numberOfApplicationsOfThisProduct) { # incluindo duas variáveis String s = "" + " if (numberOfApplicationsOfThisProduct(\""+pName+"\") >= "+numberOfApplicationsOfThisProduct+") {\n" + " dontUseIt <- TRUE; \n" + " }\n"; return s; }
[0055] Este trecho verifica se a estação é a correta (Primavera) para aplicação do produto (propriedade do campo de dados 223-P6).
public static String ConsiderOnlySpringIsAllowed() { # função sem variáveis String s = "" + # inicia a string do trecho " if (isSpring()==FALSE) {\n" + " dontUseIt <- TRUE; \n" + " }\n"; return s; # fornece a string do trecho }
[0056] Este trecho verifica se a estação é a correta (Outono) para aplicação do produto (nos registros de dados de produtos 223-P6).
public static String ConsiderOnlyAutumnIsAllowed() { # função sem variáveis String s = "" + " if (isAutumn()==FALSE) {\n" + " dontUseIt <- TRUE; \n" + " }\n"; return s; # fornece a string do trecho }
[0057] O exemplo de código Java a seguir exibe uma parte de um exemplo de realização do gerador de códigos que traz os trechos de código acima na ordem certa de acordo com a(s) estrutura(s) de dados de configuração para gerar a lógica de programa de orientação executável. A lógica de geração pode ser escrita em outras linguagens de programação. O exemplo a seguir não é considerado limitador, mas somente uma realização possível. Com relação aos exemplos de trechos de código, o sinal “#” indica novamente um comentário a seguir. Os comentários fornecem orientação para os técnicos no assunto sobre a função geral das partes de codificação correspondentes, independentemente do exemplo de realização Java específico. O comentário “se a propriedade for definida” refere-se ao valor do campo de propriedade correspondente para o respectivo registro de dados.
[0058] Exemplo de código Java para geração de código R: # cria exemplos de partes da lógica de Inseticida (este pode, por exemplo, ser o ponto inicial da lógica do programa. Outras partes do código possuem aparência similar) […] if (rData.i.toBeConsidered==true) { # verifica se, nos dados de safra # o inseticida da estrutura 221 é permitido para tratamento # (por exemplo, campo de dados 221-P7) e se deve ser criada lógica para # inseticidas addHead(RSnippet. generateHeadForInsecticideLogic (rData.cropName)); # em caso afirmativo, adicionar em seguida o trecho de código de função lógica addAdvices(rData.i.advices); # adicionar agora todas as orientações do # segment de inseticida disponíveis na(s) estrutura(s) de dados de configuração closeHead(RSnippet.CloseInsecticide()); # encerrar a função # para a lógica de inseticida } else { # caso contrário, se não for criada lógica de inseticida, # introduzir métodos vazios addHead(RSnippet.NoInsecticide(rData.cropName)); closeHead(RSnippet.CloseInsecticide()); } […] # continuar com os demais segmentos, encerrar finalmente a lógica ---
# adicionar agora todas as orientações/produtos relativas aos # inseticidas provenientes da(s) estrutura(s) de dados de configuração # o método seguinte obtém um conjunto de orientações.
# o loop é realizado para cada orientação private void addAdvices(ArrayList<Advice> advices) { for (int i = 0; i < advices.size(); i++) { Advice a = advices.get(i); addCode(RSnippet.startNewProductCheck(a)); # adiciona um trecho de # código para iniciar nova verificação de produtos addCheck(RSnippet.InbetweenBBCH(a.BBCHFrom, a.BBCHTo)); # adiciona um trecho de código para verificar se o BBBCH encontra-se # dentro da faixa esperada […] # continuar aqui com outros trechos de código no nível de orientação para # outros campos de Propriedade da(s) estrutura(s) de dado(s) de configuração.
for (int j = 0; j < a.products.size(); j++) { # loop para todos os # produtos de proteção referents a esta orientação Product p = a.products.get(j); if (p.considerTheseTargetEppoCodes!=null) { # se a Propriedade # for definida, adicionar o trecho de código para verificar os códigos eppo alvo addCheck(RSnippet.ConsiderTheseTargetEppoCodes (p.considerTheseTargetEppoCodes));
}
if (null!=p.numberOfApplicationsOfThisProduct &&
!"0".equals(p.numberOfApplicationsOfThisProduct)) { # se a Propriedade
# for definida, adicionar a verificação do
# número de aplicações para este produto addCheck(RSnippet.ConsiderNumberOfApplicationsOfThisProduct
(p.pName,p.numberOfApplicationsOfThisProduct));
}
if ("SPRING".equals(p.springOrAutumnApplication)) { # se a
Propriedade
# for definida, considerar a orientação apenas na primavera addCheck(RSnippet.ConsiderOnlySpringIsAllowed());
}
if ("AUTUMN".equals(p.springOrAutumnApplication)) { # se a propriedade
# for definida, considerar a orientação apenas no outono addCheck(RSnippet.ConsiderOnlyAutumnIsAllowed());
}
[…]
# continuar aqui com outros trechos de código
# sobre o nível de produto para outras propriedades
# da(s) estrutura(s) de dados de configuração
[…]
# adicionar o trecho de código para END verificação de produto r.append(" if (dontUseIt==FALSE) {\n"); # se a variável # for falsa, adicionar os produtos for (int j = 0; j < a.products.size(); j++) { # adicionar todos os produtos # disponíveis na(s) estrutura(s) de dados de configuração # para esta orientação e recomendá-los Product p = a.products.get(j); String methodName = "addProductAndFinishThisCombination"; if ((j+1) < a.products.size()) { methodName = "addProduct"; } # as linhas abaixo adicionam o único produto deste loop # à matriz de produtos String s = "" + " products <- "+methodName+"(products,\""+ p.pName+"\",\""+p.pRegNr+"\",\""+p.pAppRate+"\",\""+p.pAppRateUOM+" \",\""+a.waterRecommendation+"\",\""+a.waterRecommendationUOM+"\", \""+a.BBCHFrom+"\",\""+a.BBCHTo+"\");\n"; r.append(s); # isso adiciona a string # anterior à string lógica geral } r.append(" }\n"); # isso encerra o loop # anterior e o adiciona à string # aqui o trecho de código para END verificação de produto termina # após a adição do(s) produto(s) de proteção à matriz.
# por fim, o objeto da string r contém a string complete que representa a lógica
[0059] O exemplo de código R a seguir é o resultado do gerador ao haver aplicado os trechos de código de exemplo às estruturas de dados da configuração de exemplo. Novamente, o sinal “#” indica um comentário em seguida.
[0060] Exemplo de código R para programa de lógica de orientação gerado: InsecticideLogic <- function() { # nome da subrotina products <- matrix(,nrow=0,ncol=10,byrow=TRUE); # iniciar a matriz de produtos ecentBBCH <- getRecentCropsBBCH(); # chamar o estádio de
BBCH # da entrada recebida (por exemplo, a solicitação do agricultor) #// iniciar nova verificação de produto para o produto “Fastac SC Super Contact” dontUseIt <- FALSE; # iniciar uma variável if (isInbetweenBBCH(11,13, recentBBCH)==FALSE) { # if condition: if outside the # fronteiras de bbch, ignorer este produto definindo esta variável dontUseIt <- TRUE; } if ((isAtLeastOneOfTheTargetEppoCodes("APHISP")==FALSE)) { # outra condição if # se o APHISP alvo não for solicitado, # ignorer este produto definindo a variável dontUseIt <- TRUE; } if (numberOfApplicationsOfThisProduct("Fastac SC Super Contact") >= 1) { # if dontUseIt <- TRUE; # condição, se o produto já for utilizado, não permita seu uso } # por segunda vez if (isAutumn()==FALSE) { # a orientação só é permitida no Outono dontUseIt <- TRUE; # se no momento não for Outono, ignore este # produto/recomendação } if (dontUseIt==FALSE) { # coloque o produto na matriz # mas somente se a variável não for definida como verdadeira # o que significa ignorer este produto de acordo com as verificações anteriores products <- addProductAndFinishThisCombination(products,"Fastac SC Super Contact","024018-00","100","ml/ha","400","l/ha","11","13"); # definer todos # os parâmetros necessários para este produto/orientação }
[0061] Este exemplo de programa de lógica de orientação gerado pode ser aplicado em seguida à entrada recebida, especificando a condição de campo. A entrada recebida, por exemplo, pode incluir a informação: - identificador da safra: cropName = Winterbarley - identificador do alvo: eppoCode = APHISP (ou seja, um inseto específico – um piolho das plantas – que reduz o rendimento da safra) - código de estágio de crescimento: BBCH = 12.
[0062] O código para a estação atual (por exemplo, primavera, outono) não precisa necessariamente ser um parâmetro de entrada explícito, pois pode ser derivado automaticamente pelo sistema por meio de comparação da data atual associada à solicitação de entrada e um calendário correspondente.
[0063] Como resultado, esta parte da lógica de orientação gerada gera uma entrada para a instrução de mistura de produtos de proteção de safra que inclui as informações de orientação a seguir: “Fastac SC Super Contact”,
“024018-00”, “100”, “ml/ha”, “400”, “l/ha”. A instrução de mistura pode ser convertida em seguida ou transformada em formato legível por máquina que atende à sintaxe de instruções de um aparelho pulverizador a ser utilizado como instrução de controle para o mencionado pulverizador. Esses programas de conversão são geralmente conhecidos na técnica, pois correspondem basicamente a uma estrutura de mapeamento que pode mapear os elementos da instrução de mistura gerada para elementos de sintaxe de linguagem de controle que podem ser interpretados por uma unidade de controle do pulverizador.
TABELA 1
[0064] Lista de campos de propriedade potenciais utilizados na(s) estrutura(s) de dados de configuração: Nome da Propriedade Descrição pName Nome do produto (pode também ver o nome do Ingrediente Ativo). pRegNr Número de registro desse Produto naquele país. pAppRate Taxa de aplicação recomendada desse produto. pAppRateUOM Unidade de medida da Taxa de Aplicação desse produto (por exemplo, ml/ha, l/a etc.). numberOfApplicationsOfThisProduct Números Máximos de Aplicações desse Produto por Campo e por Estação (por exemplo, 1 indica que é permitida a aplicação desse produto uma vez e 0 indica que não há limitação). considerTheseTargetEppoCodes A lógica deve considerar esses Códigos Eppo Alvo listados (Separados). Especialidade: para Herbicidas, esta propriedade deve estar vazia, pois a Lista de Cruzamento (subestrutura de Erva Alvo/Erva Gramínea) está sendo utilizada caso as Ervas e Ervas Gramíneas devam ser utilizadas para combinações especiais de Produtos. considerTheseTargetNames Idêntico a considerTheseTargetEppoCodes mas com nomes de Alvos. springOrAutumnApplication Verificar: verifica se o dia, a solicitação de orientação entra no Mecanismo de Orientação, se é Primavera, Outono ou se a verificação pode ser ignorada. Valores aceitáveis são [SPRING, AUTUMN, “” ou
Nome da Propriedade Descrição nulo]. nightTemperatureBelowNotAllowed Define o limite de temperatura inferior permitido para o produto (por exemplo, -5 indica que o produto pode ser aplicado até -5 graus, mas não abaixo desse valor). nurseCropAllowed Valores potenciais são [MONOCOTYL, DICOTYL, NONE, nulo, “”]. Caso seja digitado um valor, esse valor é permitido como solicitação de orientação para coincidir com esse produto.
Outros não são. nurseCropNotAllowed Valores potenciais são [MONOCOTYL, DICOTYL, NONE, nulo, “”]. Caso seja digitado um valor, esse valor não é permitido como solicitação de orientação para coincidir com esse produto.
Outros, sim. commonTargetGrowthStageNotAllowed Valores potenciais são [EMERGENCE, FIRST_TRUE_LEAF_STAGE, SECOND_TRUE_LEAF_STAGE, THIRD_TRUE_LEAF_STAGE, THIRD_TRUE_LEAF_STAGE_EXCEEDE D, nulo, “”]. Caso seja digitado um valor, esse valor não é permitido como solicitação de orientação para coincidir com esse produto.
Outros, sim. recentCropSeedingDepthMIN Limite inferior da profundidade de semeadura que é permitido para esse produto que contém esta propriedade.
Por exemplo, “5” cm – Solicitações de Orientação com profundidade de semeadura de menos de 5 cm não serão aceitas para coincidir com esse produto. recentCropSeedingDepthMAX Limite superior da profundidade de semeadura que é permitido para esse produto que contém esta propriedade.
Por exemplo, “5” cm – Solicitações de Orientação com profundidade de semeadura de mais de 5 cm não serão aceitas para coincidir com este produto. alomyPressureNotAllowed Valores potenciais são [TRUE]FALSE, nulo ou “”]. Caso este seja definido em TRUE, esse produto não coincide com as Solicitações de Orientação que indicam que AlomyPressure é ALTA – os outros [“”, nulo, NONE, LOW] seriam aprovados. alomyPressureAllowed Valores potenciais são [TRUE]FALSE, nulo ou “”]. Caso este seja definido em TRUE, esse produto coincide com as Solicitações de Orientação que indicam que AlomyPressure é ALTA – os outros [“”, nulo, NONE, LOW, HIGH] também seriam aprovados. humusTypeNotAllowed Valores potenciais são [LowHumus,
Nome da Propriedade Descrição HighHumus]. Se o valor for listado, por exemplo, como “LowHumus” – a Orientação não será aceita.
Os demais [“”, null, HighHumus] seriam aprovados. soilTypeNotAllowed Os valores potenciais são de acordo com USDA (mas sem limitações): ['CLAY', 'LOAM', 'SILT_LOAM',…]. Se o valor for listado, por exemplo, como “CLAY” – a Orientação não será aceita.
Os outros [“”, null, 'LOAM', 'SILT_LOAM'] seriam aprovados. soilTypeAllowed Os valores potenciais são de acordo com USDA (mas sem limitações): ['CLAY', 'LOAM', 'SILT_LOAM',…]. Se o valor for listado, por exemplo, como “CLAY” – a Orientação será aceita.
Os outros [“”, null, 'LOAM', 'SILT_LOAM'] não seriam aprovados. rootPenetrationDepthNotAllowed Os valores potenciais são [FLAT, MIDDLE, DEEP]. Se o valor for listado, por exemplo, como “FLAT” – a Orientação será aceita.
Os outros [“”, null, MIDDLE, DEEP] não seriam aprovados. pHValueUnderAllowed Por exemplo, 7,0. Caso o valor seja de menos de 7,0 – a Orientação será aceita.
Se for maior - a Orientação não será aceita. pHValueAboveAllowed Por exemplo, 6,5. Caso o valor seja de mais de 6,5 – a Orientação será aceita.
Se for menor – a Orientação não será aceita.
Valores potenciais TRUE/FALSE.
Se for mulchSeedingAsOtherConditionForFusariumAllowe TRUE, mulchSeeding será aceito para esta d Orientação.
Se for FALSE, mulchSeeding não será aceito para esta Orientação. tillageOperationNotAllowed Os valores potenciais são [FLOWING_HARROW, ROLLER, PLOUGH, …]. Se o valor for listado, por exemplo, como “ROLLER” – a Orientação não será aceita.
Os outros [“”, null, FLOWING_HARROW, …] seriam aprovados. tillageOperationAllowed Os valores potenciais são [FLOWING_HARROW, ROLLER, PLOUGH, …]. Se o valor for listado, por exemplo, como "ROLLER” – a Orientação será aceita.
Os outros [“”, nulo] não seriam aprovados. lastTillageOperationDaysNotLessThan Define quantos dias antes da ocorrência da última operação de lavoura.
Se o número de dias for menor, a Orientação não pode ser fornecida. seedingDateMinBeforeDays Define quantos dias antes da ocorrência da semeadura.
Se o número de dias for menor, a Orientação não pode ser
Nome da Propriedade Descrição fornecida. seedingMonthsNotAllowed Define os meses em uma estação nos quais esta Orientação não pode ser fornecida. cropVarietyAllowed Lista os nomes das Variedades de Safras que são aceitas, de forma que a Orientação possa ser fornecida. cropVarietyNotAllowed Lista os nomes das Variedades de Safras que não são aceitas, de forma que a Orientação não possa ser fornecida. preceedingCropEppoCodeAllowed Define os Códigos Eppo de Safras que foram aplicados na estação anterior. Se essas Safras foram semeadas, a Orientação não pode ser fornecida. dayTemperatureBelowDegreesNotAllowed Define o limite de temperatura inferior permitido para o produto (por exemplo, 5 indica que o produto pode ser aplicado até 5 graus, mas não abaixo desse valor). dayTemperatureAboveDegreesNotAllowed Define o limite de temperatura superior permitido para o produto (por exemplo, 20 indica que o produto pode ser aplicado abaixo de 20 graus, mas não acima desse valor). waterSupplyAllowed Valores potenciais são [BAD, NORMAL, GOOD]. Se o valor for listado, por exemplo, como “GOOD” – a Orientação será aceita. Os outros [“”, nulo, BAD, NORMAL] não seriam aprovados. growingPlantStockNotAllowed Valores potenciais são [STRONG, MEDIUM, LOW]. Se o valor for listado, por exemplo, como “STRONG” – a Orientação não será aceita. Os outros [“”, null, MEDIUM, LOW] seriam aprovados. notValidForTheseRegions Define Regiões de um País para as quais a Orientação não é aplicável. notAllowed_IfTBZFreeCompliance_IsRequested Se definido em True e TBZFreeCompliance estiver sendo solicitado, a Orientação não pode ser fornecida.
[0065] Os campos de propriedade ilustrados e descritos na Tabela 1 são apenas exemplos de campos de propriedade que podem ser utilizados como parte das estruturas de dados de configuração. Os técnicos no assunto podem identificar mais ou outras propriedades relevantes para a geração de programas lógicos de orientação correspondentes.
[0066] Alguns dos campos de propriedade da Tabela 1 podem ser parte da entrada que é recebida para especificar uma condição de campo específica, ou seja, para cada valor potencial dessa propriedade de entrada, um trecho de código correspondente disponível para gerar uma parte de código correspondente que realiza avaliação da propriedade com relação a uma aplicação potencial de um ou mais produtos de proteção. Após a geração da lógica, a árvore de decisão completa que cobre todos os campos de propriedade e dependências correspondentes é implementada como o programa de lógica de orientação executável gerado. A Tabela 2 ilustra exemplos de propriedades de entrada que podem ser adicionadas às propriedades de entrada básicas, incluindo um identificador de safra com um identificador alvo específico e um código de estágio de crescimento específico.
A tabela possui quatro seções. A primeira seção inclui um conjunto de parâmetros de entrada básicos. As seções a seguir incluem conjuntos de parâmetros de entrada que se referem ao título correspondente da seção (Objeto da Estação de Safra, Operações de Lavoura Aplicadas e Produtos Aplicados em Trabalhos de Pulverização) que podem ser observados como subseções das propriedades de entrada básicas. Os técnicos no assunto podem definir parâmetros de entrada adicionais.
TABELA 2
[0067] Lista de campos de propriedade de entrada potenciais: Nome Tipo Descrição countryCode TEXTO País Código postal mais próximo do campo ZIPCode TEXTO ou fazenda requestID TEXTO ID do solicitante/parceiro recentCropBBCHStage TEXTO Estágio de BBCH da safra afetada Conjunto de targets Objetos de Alvos tratados Alvos Representação UUID interna de FMS da farmUUID Texto fazenda Representação UUID interna de FMS do fieldUUID Texto campo currentCropSeason Objeto Safra recente
Nome Tipo Descrição CropSeason Objeto preceedingCropSeason Safra anterior CropSeason Objeto nextCropSeason Safra futura CropSeason ENUM – valores aceitos, por exemplo, SoilType Texto de acordo com S, IS, sU ssL IU, sL uL L, utl tl T Valores aceitos: 0-100 [%]. Valores úteis humusContent Número são 0-30. soilMoisture Texto [WET, DRY, NORMAL] Conjunto de objetos de Trabalhos de pulverização aplicados sprayJobs AppliedSprayJ anteriormente ob ENUM [MONOCOTYL, DICOTYL, nurseCrop Texto NONE] ALSResistance Booleano Verdadeiro/falso ACCaseResistance Booleano Verdadeiro/falso alomyPressure TEXTO [NONE, HIGH, LOW] nightTemperaturesBelowMinus5Degr Booleano Verdadeiro/falso ees nightTemperaturesBelowMinus1Degr Booleano Verdadeiro/falso ees growthRegulatorAdviceRequested Booleano Verdadeiro/falso dayTemperatureBelow8Degrees Booleano Verdadeiro/falso dayTemperatureAbove20Degrees Booleano Verdadeiro/falso waterSupply TEXTO [BAD, NORMAL, GOOD] [EMERGENCE, FIRST_TRUE_LEAF_STAGE, SECOND_TRUE_LEAF_STAGE, commonTargetGrowthStage TEXTO THIRD_TRUE_LEAF_STAGE, THIRD_TRUE_LEAF_STAGE_EXCEED ED] rootPenetrationDepth TEXTO [FLAT, MIDDLE, DEEP] pHValue Número 0-14 (Decimal) growingPlantStock TEXTO STRONG|MEDIUM|LOW TBZFreeCompliance BOOLEANO TRUE|FALSE, vazio indica FALSE nitrogenStabilizerAdviceRequested BOOLEANO TRUE|FALSE
Nome Tipo Descrição strawBalesForStrawBalesCrops BOOLEANO TRUE|FALSE Objeto SeasonObject: Nome Tipo Descrição Safra com nome da safra e código Eppo crop Objeto da safra cropVariety Objeto Nome da variedade de safra seedingDate Data Data de pulverização Esperada em cm, por exemplo, “10,3” seedingDepth Número cm Sementes esperadas por m2 (por seedRate Número exemplo, “250,5”) Conjunto de tillageOperations TillageOperatio tillageOperations da estação n Objects Verdadeiro/falso (aplica-se ao trabalho mulchSeeding Booleano de semeadura) yieldExpectation Número Toneladas por hectare (1,2) t/ha Operações de lavoura aplicadas: Nome Tipo Descrição por exemplo [FLOWING_HARROW, tillageOperation TEXTO ROLLER, PLOUGH, HARROW, CULTIVATOR] tillageOperationDate DATA Data de realização da lavoura Produtos aplicados em trabalhos de pulverização: Nome Tipo Descrição productName Texto Nome do produto aplicado registrationNumber Texto Número de registro do produto executionDate Data Data de pulverização
[0068] A coluna de nome inclui possíveis nomes de parâmetros de entrada que são conhecidos pela lógica de programa de orientação gerada. A coluna Tipo especifica o tipo do parâmetro de entrada. Alguns parâmetros de entrada possuem um tipo de conjunto que permite a transmissão de diversos valores em paralelo. A coluna “Descrição” explica o significado dos parâmetros de entrada correspondentes. O gerador de lógica inclui instruções que são configuradas para gerar as partes de código da lógica de programa de orientação com base em trechos de código correspondentes. As partes de código estão utilizando os dados de entrada da Tabela 2 durante a execução da lógica de orientação gerada anteriormente.
[0069] A Fig. 5 exibe uma realização do sistema de computador 100 com módulos de extensão opcionais 260 a 263 que implementam uma função de verificação para lógica de programa de orientação gerada 130. A Fig.
6 é um fluxograma simplificado 2000 que ilustra etapas opcionais para verificação da lógica de programa, em que essas etapas são realizadas pelos mencionados módulos de extensão. Na descrição a seguir, a Fig. 5 é explicada no contexto da Fig. 6 com referência a números de referência das duas figuras.
Deve-se observar que, na Fig. 5, os módulos de extensão não são desenhados como módulos integrados do sistema de computador 100 porque eles podem ser implementados como sistema de teste separado que é acoplado em comunicação ao sistema de computador 100. Os módulos de extensão, no todo ou em parte, podem, entretanto, ser também implementados como componentes integrados do sistema de computador 100.
[0070] Na realização da Fig. 5, a robustez da lógica de orientação gerada 130 pode ser verificada contra casos de teste previamente definidos. O desdobramento do programa de lógica de orientação gerado somente pode ocorrer, por exemplo, se testes com base nos mencionados casos de teste forem aprovados com sucesso. Em uma realização, os casos de teste podem também ser utilizados durante a operação do sistema ao determinar-se uma instrução de mistura de produtos para verificar a instrução de mistura determinada.
[0071] Casos de teste podem ser casos de teste positivo ou negativos. Tipicamente, um caso de teste designa um parâmetro de teste específico (campo de propriedade) que varia em combinação com um conjunto fixo de parâmetros adicionais. Voltando ao exemplo de cevada de inverno, por exemplo, a faixa de códigos de estágio de crescimento [BBCHfrom, BBCHto] para os quais um produto específico é aplicável atinge de 11 a 13 para uma dada situação de campo. Existem casos de teste positivo para os parâmetros BBCHfrom e BBCHto e existem casos de teste negativo para os parâmetros (BBCHfrom – 1) e (BBCHto + 1). Quando for recebida uma entrada que possui código de estágio de crescimento dentro do intervalo definido, a execução do programa de lógica de orientação gerado pode gerar uma instrução de mistura de produtos específica. A exatidão das instruções de mistura de produtos determinadas pode ser imediatamente verificada por meio de aplicação do conjunto de casos de teste. Caso o resultado seja coberto por um caso de teste negativo, a mistura de produtos não deve ser aplicada.
[0072] Os módulos de extensão banco de dados de casos de teste 260, gerador de casos de teste 261, mecanismo de teste 262 e prova de teste 263 podem ser utilizados para implementar essa função de verificação. Em uma etapa de inicialização 2100 (cf. Fig. 5, etapas acima da linha tracejada), o gerador de casos de teste 261 cria casos de teste positivo e negativos para cada registro de dados de orientação com base nos conjuntos de dados de configuração 220. Para cada registro de dados de orientação, o gerador de casos de teste seleciona 2110 os campos de propriedade do registro de dados de orientação atual. Em outras palavras, é realizado um circuito sobre todos os registros de dados de orientação e, com cada iteração de circuito, o registro de dados de orientação seguinte é processado. Após a seleção de registro de dados de orientação, é realizado um circuito de todos os campos de propriedade do registro selecionado. Para cada campo de propriedade selecionado, o gerador de casos de teste gera 2121 um ou mais casos de teste positivo correspondentes ao valor de propriedade do campo de propriedade atual ou a um valor dentro de faixa definida pelo valor de propriedade atual. Em outras palavras, casos de teste positivo são correlacionados a valores de propriedade que se supõe gerar uma instrução de mistura quando for recebida uma entrada correspondente. Além disso, um ou mais casos de teste negativo são gerados 2122 com base em modificações do valor de campo de propriedade atual. Em casos em que uma faixa definida é especificada pelo(s) campo(s) de propriedade, as modificações incluem valores que se encontram fora da faixa definida. A inicialização de casos de teste é terminada em seguida com a etapa de armazenagem 2130 dos casos de teste gerados no banco de dados de casos de teste 260.
[0073] O mecanismo de teste 262 pode então recuperar informações de entrada (teste) 210 do banco de dados de casos de teste 260 e fornecer a entrada (teste) para o processador 150, a fim de executar 2200 a lógica de programa executável 130 com dados de entrada 210 dos casos de teste gerados 260. Com base na entrada de teste, a execução da lógica de programa 130 fornece uma ou mais instruções de mistura 140 que são encaminhadas na forma de saída 211 para o mecanismo de teste 262.
[0074] O mecanismo de teste 262 pode agora alimentar ao módulo de prova de teste 263 a saída recebida 211 e as informações de saída esperada de acordo com as informações de casos de teste recuperadas. Com base nessas informações, o módulo de prova de teste 263 verifica 2300 a lógica de programa executável verificando se as instruções de mistura geradas encontram-se de acordo com os casos de teste positivo. No caso de discordância (ou seja, a instrução de mistura inclui um resultado de caso de teste negativo), o módulo de prova de teste 263 pode enviar instruções para o processador 150, a fim de evitar o desdobramento da lógica de programa executável para produção. No caso de concordância, ele pode enviar instruções para desdobrar 2500 a lógica de programa executável para uso em produção. Este procedimento garante que não possam ser geradas instruções de mistura 140 defeituosas que poderiam gerar danos reais à safra pelo tratamento do alvo correspondente.
[0075] Especialmente em situações em que os dados de configuração podem haver sido recentemente alterados (por exemplo, adição de novos produtos de proteção ou alteração de parâmetros de aplicação), o gerador 120 pode gerar lógica de programa executável atualizada quase em tempo real. Paralelamente, o gerador de casos de teste 261 pode gerar os casos de teste correspondentes e a lógica de programa gerada 130 pode ser imediatamente testada, o que permite seu redesdobramento instantâneo, mesmo em situações em que o agricultor já esteja trabalhando em um campo e acabou de reconhecer um alvo. O sistema e métodos descritos permitem aplicação altamente confiável, quase em tempo real, da mistura de pulverização ideal com base nos dados de configuração mais recentes.
[0076] Em resumo, em primeira fase, a lógica de programa de orientação executável é gerada com base em trechos de código e dados de configuração previamente definidos. Em segunda fase (opcional), a lógica de programa pode ser verificada por meio de casos de teste negativo e positivos.
Em terceira fase, a lógica de programa executável (verificada) é aplicada a propriedades de entrada que descrevem uma situação de campo no mundo real para gerar uma instrução de mistura de produtos. Além disso, em quarta fase (opcional), a instrução de mistura de produtos é utilizada como base para controlar o aparelho pulverizador para distribuir uma mistura de produtos de proteção correspondente sobre o campo no mundo real. Deve-se observar que a terceira fase pode ser executada quase em tempo real para redesdobrar a lógica de programa em casos em que tenham ocorrido alterações de trechos de código ou dados de configuração.
[0077] A Fig. 7 ilustra uma tabela 260 com exemplos de casos de teste com relação ao exemplo de dados de configuração da Fig. 4. A tabela exibe dez casos de teste (ID de Caso de Teste 1 a 10) com relação ao registro de dados de orientação 222-1 (cf. Fig. 4) para combinações de campos de propriedade em que alguns dos valores do campo de propriedade são modificados.
Valores modificados são ilustrados por células com padrões de fundo pontilhados.
Todos os casos de teste no exemplo referiram-se ao segmento “Inseticida”. A coluna “Resultado Esperado” demonstra que uma instrução de mistura gerada é esperada apenas para os casos de teste positivo
1 e 2 (resultado esperado = 1). Para todos os demais casos de teste
(negativos), existe pelo menos uma modificação que inclui um valor de propriedade diferente ou em que o valor de propriedade modificado encontra-
se fora de uma faixa previamente definida.
A faixa previamente definida para os códigos BBCH do registro de dados de orientação 222-1, por exemplo, é o intervalo [11, 13]. Para os casos de teste 3 e 4, os valores correspondentes são
10 e 14 na coluna “Estágio BBCH de Safra Recente”, ambos os quais encontram-se fora da faixa previamente definida permitida.
Nenhuma instrução de mistura deve ser gerada, portanto, para esses valores de propriedade
(resultado esperado = “falso”). Além disso, no caso de teste 5, o valor da coluna “Aplicação na Primavera ou Outono” é “Primavera”. O registro de dados de produto relacionado 223-1, entretanto (cf.
Fig. 4) define a capacidade de aplicação apenas para outono (cf. 223-P6, na Fig. 4). O valor de propriedade modificado “Primavera”, portanto, gera o resultado “falso” esperado (sem instrução de mistura). Os casos de teste 6 e 7 referem-se a valores alvo modificados.
Segundo 223-P1 (cf.
Fig. 4), o único código eppo alvo permitido é
APHIS, que se afasta dos valores de propriedade modificados nos casos de teste e gera resultados “falsos” esperados.
Nos casos de teste 8 e 9, os valores de país e região são modificados.
Segundo o registro de dados de safra 221-1
(ao qual se refere o registro de dados de orientação 222-1), a orientação somente é válida para o país “DE” (cf. 221-P4) e a região “RP” (cf. 221-P5). As duas modificações geram, portanto, um caso de teste negativo (“falso”). Por fim, o caso de teste 10 possui valores modificados nas colunas “Safra Recente”
e “Código Eppo de Safra Recente” que não são alinhados à estrutura de dados de configuração da Fig. 4 e, portanto, também representam um caso de teste negativo.
[0078] A Fig. 8 é um diagrama que exibe um exemplo de dispositivo de computador genérico 900 e um dispositivo de computador móvel genérico 950, que podem ser utilizados com os métodos descritos no presente.
Em algumas realizações, o dispositivo de computação 900 pode referir-se ao sistema 100 (cf. Fig. 1). O dispositivo de computação 950 destina-se a representar diversas formas de dispositivos móveis, tais como assistentes digitais pessoais, telefones celulares, smartphones e outros dispositivos de computação similares. No contexto da presente invenção, o dispositivo de computação 950 pode ser utilizado como front end por agricultores que operam no campo para capturar a situação de campo atual para a entrada, que é fornecida em seguida para o dispositivo 900, a fim de executar a lógica de programa gerada. Em outras realizações, todo o sistema 100 pode ser implementado no dispositivo móvel 950. Os componentes exibidos no presente, suas conexões e relações, bem como suas funções, destinam-se a ser apenas exemplos e não se destinam a limitar as realizações das invenções descritas e/ou reivindicadas no presente.
[0079] O dispositivo de computação 900 inclui um processador 902, memória 904, dispositivo de armazenamento 906, interface de alta velocidade 908 conectada à memória 904 e portas de expansão de alta velocidade 910 e uma interface de baixa velocidade 912 conectada ao barramento de baixa velocidade 914 e dispositivo de armazenamento 906.
Cada um dos componentes 902, 904, 906, 908, 910 e 912 é interconectado utilizando diversos terminais e pode ser montado sobre uma placa-mãe comum ou de outras formas, conforme apropriado. O processador 902 pode processar instruções para execução no dispositivo de computação 900, incluindo instruções armazenadas na memória 904 ou no dispositivo de armazenamento
906 para exibir informações gráficas para um GUI em um dispositivo de entrada/saída externo, tal com o visor 916 acoplado à interface de alta velocidade 908. Em outras realizações, podem ser utilizados diversos processadores e/ou diversos barramentos, conforme apropriado, em conjunto com diversas memórias e tipos de memória. Além disso, diversos dispositivos de computação 900 podem ser conectados e cada dispositivo fornece partes das operações necessárias (por exemplo, como um banco de servidores, grupo de servidores isolados ou sistema de múltiplos processadores).
[0080] A memória 904 armazena informações no dispositivo de computação 900. Em uma realização, a memória 904 é uma ou mais unidades de memória volátil. Em outra realização, a memória 904 é uma ou mais unidades de memória não volátil. A memória 904 pode também ser outra forma de meio legível por computador, tal como disco óptico ou magnético.
[0081] O dispositivo de armazenamento 906 é capaz de fornecer armazenagem em massa para o dispositivo de computação 900. Em uma realização, o dispositivo de armazenamento 906 pode ser ou conter um meio legível por computador, tal como um dispositivo de disco flexível, dispositivo de disco rígido, dispositivo de disco óptico, dispositivo de fita, memória flash ou outro dispositivo de memória em estado sólido similar, ou um conjunto de dispositivos, incluindo dispositivos em uma rede de área de armazenamento ou outras configurações. Um produto de programa de computador pode ser realizado de forma tangível em um veículo de informações. O produto de programa de computador pode também conter instruções que, quando executadas, realizam um ou mais métodos, tais como os descritos acima. O veículo de informações é um meio legível por máquina ou computador, tal como a memória 904, o dispositivo de armazenamento 906 ou a memória no processador 902.
[0082] O controlador de alta velocidade 908 administra operações com uso intensivo de largura de banda para o dispositivo de computação 900, enquanto o controlador de baixa velocidade 912 administra operações com menor uso intensivo de largura de banda. Essa alocação de funções é apenas um exemplo. Em uma realização, o controlador de alta velocidade 908 é acoplado à memória 904, visor 916 (por exemplo, por meio de um acelerador ou processador gráfico) e a portas de expansão de alta velocidade 910, que podem aceitar diversos cartões de expansão (não exibidos). Na realização, o controlador de alta velocidade 912 é acoplado ao dispositivo de armazenamento 906 e à porta de expansão de alta velocidade 914. A porta de expansão de baixa velocidade, que pode incluir diversas portas de comunicação (por exemplo, USB, Bluetooth, Ethernet e Ethernet sem fios), pode ser acoplada a um ou mais dispositivos de entrada/saída, tais como teclado, dispositivo apontador, scanner ou dispositivo de formação de redes, tal como chave ou roteador, por exemplo, por meio de um adaptador de rede.
[0083] O dispositivo de computação 900 pode ser implementado em uma série de formas diferentes, conforme exibido na figura. Ele pode ser implementado, por exemplo, na forma de servidor padrão 920 ou diversas vezes em um grupo desses servidores. Ele pode ser também implementado como parte de um sistema de servidores de suporte 924. Além disso, ele pode ser implementado em um computador pessoal, tal como um computador laptop
922. Alternativamente, componentes do dispositivo de computação 900 podem ser combinados com outros componentes em um dispositivo móvel (não exibido), tal como o dispositivo 950. Cada um desses dispositivos pode conter um ou mais dispositivos de computação 900, 950 e um sistema completo pode ser composto de diversos dispositivos de computação 900, 950 que se comunicam entre si.
[0084] O dispositivo de computação 950 inclui um processador 952, memória 964, dispositivo de entrada/saída tal como visor 954, interface de comunicação 966 e um transceptor 968, entre outros componentes. O dispositivo 950 pode também ser equipado com um dispositivo de armazenamento, tal como um microdrive ou outro dispositivo, para fornecer armazenamento adicional. Cada um dos componentes 950, 952, 964, 954, 966 e 968 é interconectado utilizando diversos barramentos e vários componentes podem ser montados sobre uma placa-mãe comum ou de outras formas, conforme apropriado.
[0085] O processador 952 pode executar instruções no dispositivo de computação 950, incluindo instruções armazenadas na memória 964. O processador pode ser implementado como conjunto de chips que incluem diversos processadores analógicos e digitais separados. O processador pode fornecer, por exemplo, coordenação dos demais componentes do dispositivo 950, tais como controle de interfaces de usuário, aplicativos conduzidos pelo dispositivo 950 e comunicação sem fios pelo dispositivo 950.
[0086] O processador 952 pode comunicar-se com o usuário por meio da interface de controle 958 e interface de tela 956 acopladas a uma tela
954. A tela 954 pode ser, por exemplo, uma tela de LCD TFT (Visor de Cristal Líquido com Transistor de Filme Fino) ou OLED (Diodo Emissor de Luz Orgânico), ou outra tecnologia de tela apropriada. A interface de tela 956 pode compreender circuitos apropriados para dirigir a tela 954 para que apresente informações gráficas e outras para o usuário. A interface de controle 958 pode receber comandos do usuário e convertê-los para apresentação ao processador 952. Além disso, a interface externa 962 pode ser fornecida em comunicação com o processador 952, de forma a permitir comunicação em área próxima do dispositivo 950 com outros dispositivos. A interface externa 962 pode fornecer, por exemplo, comunicação com fios em algumas realizações ou comunicação sem fios em outras realizações e podem ser também utilizadas diversas interfaces.
[0087] A memória 964 armazena informações no dispositivo de computação 950. A memória 964 pode ser implementada como um ou mais meios legíveis por computador, uma ou mais unidades de memória volátil ou uma ou mais unidades de memória não volátil. A memória de expansão 984 pode ser também fornecida e conectada ao dispositivo 950 por meio da interface de expansão 982, que pode incluir, por exemplo, uma interface de cartão SIMM (Módulo de Memória Em Linha Isolado). Essa memória de expansão 984 pode fornecer espaço de armazenamento adicional para o dispositivo 950 ou pode também armazenar aplicativos ou outras informações para o dispositivo 950. Especificamente, a memória de expansão 984 pode incluir instruções para conduzir ou suplementar os processos descritos acima e pode também incluir informações seguras. Desta forma, a memória de expansão 984 pode agir, por exemplo, como modelo de segurança para o dispositivo 950 e pode ser programada com instruções que permitam o uso seguro do dispositivo 500. Além disso, aplicativos seguros podem ser fornecidos aos cartões SIMM, em conjunto com informações adicionais, tais como a colocação das informações de identificação no cartão SIMM de forma que não possa ser hackeada.
[0088] A memória pode incluir, por exemplo, memória flash e/ou memória NVRAM, conforme discutido abaixo. Em uma realização, um produto de programa de computador é realizado de forma tangível em um veículo de informações. O produto de programa de computador contém instruções que, quando executadas, realizam um ou mais métodos, tais como os descritos acima. O veículo de informação é um meio legível por máquina ou computador, tal como a memória 964, memória de expansão 984 ou memória no processador 952, que pode ser recebido, por exemplo, sobre o transceptor 968 ou a interface externa 962.
[0089] O dispositivo 950 pode comunicar-se sem fios por meio da interface de comunicação 966, que pode incluir circuitos de processamento de sinais digitais quando necessário. A interface de comunicação 966 pode fornecer comunicações em vários modos ou protocolos, tais como chamadas de voz GSM, mensagens de SMS, EMS ou MMS, CDMA, TDMA, PDC, WCDMA, CDMA2000 ou GPRS, entre outros. Essa comunicação pode ocorrer, por exemplo, por meio do transceptor de rádio frequência 968. Além disso, pode ocorrer comunicação de curto alcance, utilizando-se, por exemplo, um transceptor Bluetooth, WiFi ou outro (não exibido). Adicionalmente, um módulo receptor de GPS (Sistema de Posicionamento Global) 980 pode fornecer para o dispositivo 950 dados sem fios adicionais relativos à navegação e localização, que podem ser utilizados conforme apropriado por aplicativos conduzidos no dispositivo 950.
[0090] O dispositivo 950 pode também comunicar-se de forma audível utilizando codec de áudio 960, que pode receber informações faladas do usuário e convertê-las em informações digitais utilizáveis. Codec de áudio 960 pode, de forma similar, gerar som audível para o usuário, por exemplo, por meio de alto-falante, tal como em um fone de ouvidos do dispositivo 950. Esse som pode incluir som de chamadas telefônicas de voz, pode incluir som gravado (por exemplo, mensagens de voz, arquivos de música etc.) e pode também incluir som gerado por aplicativos em operação no dispositivo 950.
[0091] O dispositivo de computação 950 pode ser implementado em uma série de formas diferentes, conforme exibido na figura. Ele pode ser implementado, por exemplo, na forma de telefone celular 980. Ele pode também ser realizado como parte de um smartphone 982, assistente digital pessoal ou outro dispositivo móvel similar.
[0092] Diversas realizações dos sistemas e métodos descritos no presente podem ser implementadas em circuito eletrônico digital, circuito integrado, ASICs especialmente projetados (circuitos integrados específicos de aplicativos), hardware de computador, firmware, software e/ou suas combinações. Estas diversas realizações podem incluir realização em um ou mais programas de computador que são executáveis e/ou podem ser interpretados em um sistema programável que inclui pelo menos um processador programável, que pode ser de propósito geral ou especial, acoplado para receber dados e instruções e transmitir dados e instruções para um sistema de armazenamento, pelo menos um dispositivo de entrada e pelo menos um dispositivo de saída.
[0093] Estes programas de computador (também conhecidos como programas, software, aplicativos de software ou código) incluem instruções de máquina para um processador programável e podem ser implementados em linguagem de programação orientada a objetos e/ou de procedimentos de alto nível e/ou em linguagem de máquina/assembly. Da forma utilizada no presente, as expressões “meio legível por máquina” e “meio legível por computador” indicam qualquer produto de programa de computador, aparelho e/ou dispositivo (por exemplo, discos magnéticos, discos ópticos, memória, Dispositivos Lógicos Programáveis (PLDs)) utilizado para fornecer instruções de máquina e/ou dados para um processador programável, incluindo meio legível por máquina que recebe instruções de máquina como sinal legível por máquina. A expressão “sinal legível por máquina” designa qualquer sinal utilizado para fornecer instruções de máquina e/ou dados para um processador programável.
[0094] Para fornecer interação com o usuário, os sistemas e métodos descritos no presente podem ser implementados em um computador que possui dispositivo de tela (por exemplo, um monitor de CRT (tubo de raios catódicos) ou LCD (visor de cristal líquido) para exibir informações para o usuário e um teclado e dispositivo apontador (por exemplo, mouse ou trackball) por meio dos quais o usuário pode fornecer entrada para o computador. Outros tipos de dispositivos podem ser também utilizados para fornecer interação com o usuário; o feedback fornecido para o usuário pode ser, por exemplo, qualquer forma de feedback sensorial (por exemplo, feedback visual, feedback auditivo ou feedback táctil); e a entrada do usuário pode ser recebida de qualquer forma, incluindo entrada acústica, falada ou táctil.
[0095] Os sistemas e métodos descritos no presente podem ser implementados em um dispositivo de computação que inclui um componente back end (por exemplo, como servidor de dados) ou inclui um componente middleware (por exemplo, um servidor de aplicativos), ou que inclui um componente front end (por exemplo, um computador de cliente que possui uma interface gráfica de usuário ou navegador da Web por meio do qual o usuário pode interagir com uma realização dos sistemas e métodos descritos no presente) ou qualquer combinação desses componentes back end, middleware ou front end. Os componentes do sistema podem ser interconectados por qualquer forma ou meio de comunicação de dados digitais (por exemplo, uma rede de comunicação). Exemplos de redes de comunicação incluem uma rede de área local (“LAN”), rede de área ampla (“WAN”) e a internet.
[0096] O dispositivo de computação pode incluir clientes e servidores. Cliente e servidor são geralmente remotos entre si e tipicamente interagem por meio de uma rede de comunicação. A relação entre cliente e servidor surge em virtude de programas de computador conduzidos nos computadores correspondentes, que possuem relação de cliente-servidor entre si.

Claims (13)

REIVINDICAÇÕES
1. MÉTODO IMPLEMENTADO POR COMPUTADOR (1000) para otimização da proteção agrícola, caracterizado pelo método compreender: - acesso (1100) a uma ou mais estruturas de dados de configuração (220), em que uma ou mais estruturas de dados de configuração incluem campos de dados para armazenamento de: - dados de safra (221), em que um registro de dados de safra (221-1) armazena pelo menos informações identificadoras de safras para uma safra específica e propriedades relativas à capacidade de aplicação de diversos segmentos de produtos de proteção para a safra específica; - dados de orientação (22) relativos a dados de safra correspondentes, em que cada registro de dados de orientação (222-1, 222-2, 222-3) armazena informações identificadoras de orientação e propriedades relativas a recomendações para a safra relacionada com relação a um segmento de produto de proteção correspondente; e - dados de produtos de proteção vegetal (223) relativos a dados de orientação correspondentes, em que cada registro de dados de produtos de proteção vegetal (223-1, 223-2, 223-3, 223-4) armazena informações de identificação sobre um produto de proteção específico para pelo menos um alvo específico e propriedades de aplicação de produtos com relação ao registro de dados de orientação relacionados, em que cada alvo descreve uma infestação específica ou doença de safra específica; - acesso (1200) a uma série de trechos de código (230) em que cada trecho de código (231, 232, 233) possui uma condição referente a pelo menos um campo de propriedade da uma ou mais estruturas de dados (220) ou a um resultado de outro trecho de código e inclui adicionalmente lógica de programa genérica associada à condição, em que cada campo de propriedade é utilizado na condição de pelo menos um trecho de código;
- aplicação (1300) da série de trechos de código à uma ou mais estruturas de dados de configuração para gerar um programa de lógica de orientação (130) transformando a lógica de programa genérica de cada trecho de código em lógica de programa executável de acordo com as condições correspondentes e os valores de campo de dados correspondentes; - recebimento (1400) de entrada que compreende pelo menos um identificador de safra específico, um identificador alvo específico e um código de estágio de crescimento de safra específico que representa uma situação de campo no mundo real; e - aplicação (1500) do programa de lógica de orientação gerado à entrada recebida para gerar uma instrução de mistura de produtos de proteção vegetal para tratamento da situação de campo no mundo real.
2. MÉTODO de acordo com a reivindicação 1, caracterizado por compreender adicionalmente: - fornecimento (1600) da instrução de mistura de produtos de proteção vegetal gerada (140) como instrução de controle (240) para um aparelho pulverizador (250), a fim de gerar uma mistura de tanque com um ou mais produtos de proteção vegetal de acordo com o programa de lógica de orientação gerado.
3. MÉTODO de acordo com qualquer das reivindicações anteriores, caracterizado pelo segmento de produto de proteção correspondente ser selecionado a partir do grupo de: inseticidas (i), fungicidas (f), herbicidas (h), estabilizantes de nitrogênio (n), reguladores do crescimento (g), nematicidas, molusquicidas, raticidas, acaricidas, bactericidas, alguicidas, antimicrobianos, fertilizantes, corretores do solo, aditivos do solo e combinações de dois ou mais dos mencionados segmentos.
4. MÉTODO de acordo com qualquer das reivindicações anteriores, caracterizado por compreender adicionalmente:
- para cada registro de dados de orientação: - seleção (2110) dos campos de propriedade do registro de dados de orientação atual; - para cada campo de propriedade selecionado: - geração (2121) de um ou mais casos de teste positivo correspondentes ao valor de propriedade do campo de propriedade atual ou a um valor dentro de faixa definida pelo valor de propriedade atual; e - geração (2122) de um ou mais casos de teste negativo com base em modificações do valor de campo de propriedade atual e, em caso de faixa definida, em que as modificações encontram-se fora da faixa definida; e - armazenamento (2130) dos casos de teste gerados em um banco de dados de casos de teste (260).
5. MÉTODO de acordo com a reivindicação 4, caracterizado por compreender adicionalmente: - execução (2200) da lógica de programa executável com dados de entrada dos casos de teste gerados; - verificação (2300) da lógica de programa executável verificando se as instruções de mistura geradas encontram-se de acordo com os casos de teste positivo; em caso de discordância, evita-se (2400) que a lógica de programa executável seja desenvolvida para produção; e em caso de concordância, desdobramento (2500) da lógica de programa executável para uso em produção.
6. MÉTODO de acordo com a reivindicação 4, caracterizado por compreender adicionalmente: - execução da lógica de programa executável com dados de entrada que refletem uma situação de campo no mundo real;
- verificação se as instruções de mistura geradas encontram- se de acordo com os casos de teste positivo; em caso de discordância, descarte da instrução de mistura gerada (140); e em caso de concordância, transformação da instrução de mistura gerada (140) em uma saída de sistema (211).
7. PRODUTO DE PROGRAMA DE COMPUTADOR PARA OTIMIZAÇÃO DA PROTEÇÃO AGRÍCOLA, caracterizado por compreender instruções que, quando carregadas na memória de um sistema de computador e executadas por pelo menos um processador do sistema de computador, fazem com que o sistema de computador realize as etapas de método conforme definido em qualquer das reivindicações anteriores.
8. SISTEMA DE COMPUTADOR (100) para otimização da proteção agrícola, caracterizado pelo sistema compreender: - um módulo gerador (120) configurado para ter acesso a uma ou mais estruturas de dados de configuração (220), em que uma ou mais estruturas de dados de configuração incluem campos de dados para armazenar: - dados de safra (221), em que um registro de dados de safra (221-1) armazena pelo menos informações identificadoras de safras para uma safra específica e propriedades relativas à capacidade de aplicação de diversos segmentos de produtos de proteção para a safra específica; - dados de orientação (22) relativos a dados de safras correspondentes, em que cada registro de dados de orientação (222-1, 222-2, 222-3) armazena informações identificadoras de orientação e propriedades relativas a recomendações para a safra relacionada com relação a um segmento de produto de proteção correspondente; e - dados de produtos de proteção vegetal (223)
relativos a dados de orientação correspondentes, em que cada registro de dados de produtos de proteção vegetal (223-1, 223-2, 223-3, 223-4) armazena informações identificadoras sobre um produto de proteção específico para pelo menos um alvo específico e propriedades de aplicação de produtos com relação ao registro de dados de orientação relacionados, em que cada alvo descreve uma infestação específica ou doença de safra específica; adicionalmente configurado para ter acesso a uma série de trechos de código (230) em que cada trecho de código (231, 232, 233) possui uma condição referente a pelo menos um campo de propriedade da uma ou mais estruturas de dados (220) ou a um resultado de outro trecho de código e inclui adicionalmente lógica de programa genérica associada à condição, em que cada campo de propriedade é utilizado na condição de pelo menos um trecho de código; e adicionalmente configurado para aplicar a série de trechos de código à uma ou mais estruturas de dados de configuração para gerar um programa de lógica de orientação transformando a lógica de programa genérica de cada trecho de código em lógica de programa executável (130) de acordo com as condições correspondentes e os valores de campo de dados correspondentes; - uma interface (110) configurada para receber entrada (210) que compreende pelo menos um identificador de safra específico, um identificador alvo específico e um código de estágio de crescimento de safra específico que representa uma situação de campo no mundo real; e - um módulo processador (150) configurado para aplicar o programa de lógica de orientação gerado (130) à entrada recebida (210) para gerar uma instrução de mistura de produtos de proteção vegetal (140) para tratamento da situação de campo no mundo real.
9. SISTEMA de acordo com a reivindicação 8, caracterizado pelo sistema de computador compreender adicionalmente um módulo de conversão configurado para converter a instrução de mistura de produtos de proteção vegetal gerada (140) em instrução de controle (240) para um aparelho pulverizador (250), a fim de gerar uma mistura de tanque com um ou mais produtos de proteção vegetal de acordo com o programa de lógica de orientação gerado, em que a instrução de controle (240) é fornecida para o aparelho pulverizador (250) pela interface (110).
10. SISTEMA de acordo com qualquer das reivindicações 8 ou 9, caracterizado pelo segmento de produto de proteção correspondente ser selecionado a partir do grupo de: inseticidas (i), fungicidas (f), herbicidas (h), estabilizantes de nitrogênio (n), reguladores do crescimento (g), nematicidas, molusquicidas, raticidas, acaricidas, bactericidas, alguicidas, antimicrobianos, fertilizantes, corretores do solo, aditivos do solo e combinações de dois ou mais dos mencionados segmentos.
11. SISTEMA de acordo com qualquer das reivindicações 8 a 10, caracterizado pelo gerador (120) incluir uma lista de instruções ordenadas (S1 a Sn), em que cada instrução indica um trecho de código correspondente.
12. SISTEMA de acordo com qualquer das reivindicações 8 a 11, caracterizado por compreender adicionalmente: - um módulo gerador de casos de teste (261) configurado para gerar (2100) um ou mais casos de teste para cada registro de dados de orientação por meio de: - seleção (2110) dos campos de propriedade do registro de dados de orientação atual; - para cada campo de propriedade selecionado: - geração (2121) de um ou mais casos de teste positivo correspondentes ao valor de propriedade do campo de propriedade atual ou a um valor dentro de faixa definida pelo valor de propriedade atual;
- geração (2122) de um ou mais casos de teste negativo com base em modificações do valor de campo de propriedade atual e, em caso de faixa definida, em que as modificações encontram-se fora da faixa definida; e - armazenamento (2130) dos casos de teste gerados em um banco de dados de casos de teste (260).
13. SISTEMA de acordo com a reivindicação 12, caracterizado por compreender adicionalmente: - um mecanismo de teste (262) configurado para acionar a execução da lógica de programa executável (130) com dados de entrada (210) dos casos de teste gerados (260); e - um módulo de prova de teste (263) configurado para verificar a lógica de programa executável verificando se as instruções de mistura geradas (140) encontram-se em concordância com os casos de teste positivo e para evitar o desdobramento da lógica de programa executável para produção em caso de discordância e desdobrar a lógica de programa executável para uso de produção no caso de concordância.
BR112020004550-0A 2017-09-29 2018-09-10 método implementado por computador, produto de programa de computador para otimização da proteção agrícola e sistema de computador BR112020004550A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17194082.8 2017-09-29
EP17194082 2017-09-29
PCT/EP2018/074294 WO2019063274A1 (en) 2017-09-29 2018-09-10 SYSTEM AND METHOD FOR HARVEST PROTECTION OPTIMIZATION

Publications (1)

Publication Number Publication Date
BR112020004550A2 true BR112020004550A2 (pt) 2020-09-08

Family

ID=59997258

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020004550-0A BR112020004550A2 (pt) 2017-09-29 2018-09-10 método implementado por computador, produto de programa de computador para otimização da proteção agrícola e sistema de computador

Country Status (7)

Country Link
US (1) US11593897B2 (pt)
EP (1) EP3688690B1 (pt)
CN (1) CN111108517A (pt)
AR (1) AR113157A1 (pt)
BR (1) BR112020004550A2 (pt)
RU (1) RU2020113428A (pt)
WO (1) WO2019063274A1 (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020079231A1 (en) * 2018-10-19 2020-04-23 Basf Se Computer system and computer-implemented method for optimization of crop protection
US11874264B2 (en) * 2019-08-02 2024-01-16 Heritage Landscape Supply Group, Inc. Systems and methods for reporting performance of agricultural inputs
CN112450020B (zh) * 2020-12-04 2022-07-29 庐山市环绿时代农业科技开发有限公司 一种智能化白芨除草方法、装置、存储介质和终端
EP4278313A1 (en) * 2021-01-14 2023-11-22 BASF Agro Trademarks GmbH Method for determining a treatment schedule for treating a field

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001095162A1 (en) * 2000-06-05 2001-12-13 Ag-Chem Equipment Company, Inc. System and method for creating demo application maps for site-specific farming
US7626496B1 (en) 2007-01-16 2009-12-01 At&T Corp. Negative feedback loop for defect management of plant protection ticket screening
CA2885962A1 (en) 2009-06-25 2010-09-01 Certusview Technologies, Llc Methods and apparatus for assessing locate request tickets
DE102010023380B4 (de) * 2010-06-10 2015-03-05 Basf Se Wiederbefüllbares und selbstdosierendes Gebindesystem für Pflanzenschutzmittel mit integrierter, hydraulisch von außen angetriebener Dosierpumpe
JP2015509062A (ja) 2011-12-14 2015-03-26 ビーエーエスエフ ソシエタス・ヨーロピアBasf Se 液体混合物を適用するシステム及び方法
US20130332205A1 (en) 2012-06-06 2013-12-12 David Friedberg System and method for establishing an insurance policy based on various farming risks
CN105209998B (zh) * 2013-03-15 2017-11-14 百特恩格伍德公司 用预混溶液配制制剂的系统和方法
AU2014286114B2 (en) * 2013-07-05 2017-07-06 Rockwool A/S Plant growth system
US11113649B2 (en) * 2014-09-12 2021-09-07 The Climate Corporation Methods and systems for recommending agricultural activities
US10667456B2 (en) * 2014-09-12 2020-06-02 The Climate Corporation Methods and systems for managing agricultural activities
US9792557B2 (en) * 2015-01-14 2017-10-17 Accenture Global Services Limited Precision agriculture system
US10342174B2 (en) * 2015-10-16 2019-07-09 The Climate Corporation Method for recommending seeding rate for corn seed using seed type and sowing row width
US10628895B2 (en) * 2015-12-14 2020-04-21 The Climate Corporation Generating digital models of relative yield of a crop based on nitrate values in the soil
US10251347B2 (en) * 2016-01-07 2019-04-09 The Climate Corporation Generating digital models of crop yield based on crop planting dates and relative maturity values
US9563852B1 (en) * 2016-06-21 2017-02-07 Iteris, Inc. Pest occurrence risk assessment and prediction in neighboring fields, crops and soils using crowd-sourced occurrence data
US10438302B2 (en) * 2017-08-28 2019-10-08 The Climate Corporation Crop disease recognition and yield estimation

Also Published As

Publication number Publication date
RU2020113428A (ru) 2021-10-29
CN111108517A (zh) 2020-05-05
WO2019063274A1 (en) 2019-04-04
EP3688690B1 (en) 2024-02-21
AR113157A1 (es) 2020-01-29
US11593897B2 (en) 2023-02-28
RU2020113428A3 (pt) 2022-04-08
EP3688690A1 (en) 2020-08-05
US20200273117A1 (en) 2020-08-27

Similar Documents

Publication Publication Date Title
BR112020004550A2 (pt) método implementado por computador, produto de programa de computador para otimização da proteção agrícola e sistema de computador
Ricci et al. Local pesticide use intensity conditions landscape effects on biological pest control
US20150278838A1 (en) Systems, methods, and apparatuses for agricultural data collection, analysis, and management via a mobile device
BR112020025328A2 (pt) Direcionamento de oportunidade ideal de localização e portfólio
US20210241389A1 (en) Device for agricultural management
Зось-Кіор et al. DIGITALIZATION IN REALIZATION OF ECOLOGICAL AND ECONOMIC PRINCIPLES OF MANAGING SUSTAINABLE DEVELOPMENT OF AGRARIAN ENTERPRISE
Dunlap 2, 4-D injury to Cotton from airplane dusting of Rice.
BR112021007018A2 (pt) método implementado por computador (1000), para otimizar a proteção de culturas, produto de programa de computador e sistema de computador
BR112020003310A2 (pt) métodos para calibrar e/ ou otimizar modelos de previsão, para o registro e para gerar uma previsão, sistemas para calibrar e/ ou otimizar modelos de previsão e para gerar uma previsão, produtos de programa de computador e sistema de computador móvel
US20200113172A1 (en) System and method for controlling machinery for randomizing and replicating predetermined argonomic input levels
Dhawan et al. Impact of integrated pest management practices on insect pest incidence, natural enemies population and yield of seed cotton.
Vennila Android mobile apps for crop based insecticide and fungicide calculation
Foote et al. Thrips and cotton response to relay intercropping with wheat in North Carolina.
Norman Agronomic uses for plant growth-regulators.
Halliday et al. Field experiments in selective weed control by plant-growth regulators. IV. The effect of plant-growth regulators upon the productivity of grassland.
Kepley Rapid development of mobile apps using App Inventor and AGCO API
James et al. Chemical ripening in South Sumatra.
Phillips Technology to turn you into a truly smart farmer
Calegario et al. Evaluation of integrated strawberry production field recording process in Atibaia, São Paulo State, Brazil.
Fee ChungGait Two incidences of rat damage in Sabah and importance of rat control in immature oil palm.
WO2024039880A1 (en) Methods and systems for use in growth stage prediction
JP2015049864A (ja) 農業支援システム
Jo HyunKil et al. Effects of pear orchards on carbon reduction.
Nurindah et al. Evaluation of four integrated pest management packages for controlling main pests of cotton in rainfed fields.
Gruenholz et al. Development of difenzoquat, a selective herbicide against wild oats in Spain.

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]