A Framework for Agricultural Model Development Kei Tanaka NARC-NARO.

Slides:



Advertisements
Similar presentations
National Agriculture and Food Research Organization National Agricultural Research Center Data Mining and GRID Research TeamTakuji Kiura, Atsushi Yamakawa,
Advertisements

Java OSS Web Technologies By Dave Ford Introduction Purpose Describe Javas relationship to the OSS community Describe OSS tools used on recent project.
Building Portals to access Grid Middleware National Technical University of Athens Konstantinos Dolkas, On behalf of Andreas Menychtas.
Pulan Yu School of Informatics Indiana University Bloomington Web service based Varuna.Net.
Presented by: Subek Shakya Sudip Shrestha Sujan Thapa.
Idaho National Engineering and Environmental Laboratory What is a Framework? Web Service? Why do you need them? Wayne Simpson November.
SelfCon Foil no 1 Dynamic component systems 1. SelfCon Foil no 2 Pre-structured systems vs. dynamic component systems Pre-structured – emphasis on content.
An Agile Approach for Web Systems Engineering A Presentation of an Article by V.E.S. Souza and R.A. Falbo.
Gas Tracker 9000 Semester Project EEL 6788 Spring 2010 Chris Giles EEL April-2010 University of Central Florida.
CS 337 Final Project Presentation Asset Management and Tracking Developers: –Jimmy Hoo –Edwin Panameno –Manuel Segura –Sheng-Tian Lin Customers –Alexandre.
Mobile Application Development
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
1 PingER Executive Plots MAGGIE 21 st Feb Sequence 1. Brief Overview of Project 2. Current Implementation and Capabilities 3. Types of Charts.
April 28-29, 2015 at Hotel Serena, Islamabad
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
UNIT-V The MVC architecture and Struts Framework.
Introduction to Java Programming. Contents 1. Java, etc. 2. Java's Advantages 3. Java's Disadvantages 4. Types of Java Code 5. Java Bytecodes 6. Steps.
BY LINDA MOHAISEN MIKE ZIELINSKI The Tree Census Project.
Principles of Computer Programming (using Java) Review Haidong Xue Summer 2011, at GSU.
Submitted by: Madeeha Khalid Sana Nisar Ambreen Tabassum.
Sadegh Aliakbary Sharif University of Technology Spring 2011.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Java Beserkers Group 4. Start of Java Development began on June of 1991 by a group of computer scientist at the Sun Mircrosystems Company Development.
Java Omar Rana University of South Asia. Course Overview JAVA  C/C++ and JAVA Comparison  OOP in JAVA  Exception Handling  Streams  Graphics User.
JBoss Developer Studio. JBoss Developer Studio provides a certified open source development environment that includes and integrates: Eclipse Eclipse.
Internet Information Services 7.0 Infrastructure Planning and Design Series.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Computer Programming 12 Mr. Jean March 19 th, 2013.
Tunis International Centre for Environmental Technologies Small Seminar on Networking Technology Information Centers UNFCCC secretariat offices Bonn, Germany.
Linux Audio Mangler Project Design Presentation Yu Chong Hector Urtubia Tony Zuliani.
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.2 Getting the Tools and Setting Up the Development.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Computer Emergency Notification System (CENS)
Meteorological Data Northeastern Thailand (100 × 120 points) 0.05 degree grid Spatial interpolated data against to actual data 2013/1/14TIP2013, Honolulu1.
A Web-based Distributed Simulation System Christopher Taewan Ryu Computer Science Department California State University, Fullerton.
HDF and HDF-EOS Workshop VIII, October 26-28, /12 Peter Cao, National Center for Supercomputing Applications This work is supported in part by a.
Ad Hoc Graphical Reports Ad Hoc Graphical Reports Copyright © Team #4 CSCI 6838 Spring CSCI Research Project and Seminar Team# 4 (
Jian Gui WANG New Implementation of Agriculture Models APAN19---Jan New Implementations of Agriculture Models Using Mediate Architecture.
Image Recognition System in Fields National Agriculture and Food Research Organization and University of Tsukuba Kei Tanaka.
Struts Framework Anna Paščenko. What is Struts?  An open source framework for building Java web applications.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
A Remote Collaboration Environment for Protein Crystallography HEPiX-HEPNT Conference, 8 Oct 1999 Nicholas Sauter, Stanford Synchrotron Radiation Laboratory.
Team Members Tyler Lamb Kirk Olson James Woestman IRP Presentation Client Zirous Inc. Faculty Advisor Tien Nguyen 1.
Level 1-2 Trigger Data Base development Current status and overview Myron Campbell, Alexei Varganov, Stephen Miller University of Michigan August 17, 2000.
Singleton Academy, Pune. Course syllabus Singleton Academy Pune – Course Syllabus1.
Text 16 de mayo de 2009 Spring Framework Part III. Portable Service Abstractions and Spring MVC Buenos Aires, June 2009.
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
© 2005 The Horticulture and Food Research Institute of New Zealand Ltd The agmodel project: Live linking between natural resource models and weather databases,
ASP.NET WEB Applications. ASP.NET  Web application framework developed by Microsoft  Build dynamic data driven web applications and web services  Subset.
CIS-NG CASREP Information System Next Generation Shawn Baugh Amy Ramirez Amy Lee Alex Sanin Sam Avanessians.
Eurostat May 2016 Eurostat, Unit B3 – IT solutions for statistical production Test Client Jean-Francois LEBLANC Christian SEBASTIAN.
TECHNICAL ASSISTANCE FOR THE CONVERSION OF RBPAPs INTO RBMPs DATA MANAGEMENT INCEPTION WORKSHOP ESTAMBUL February Eusebio CRUZ GARCÍA.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Best 3 Software Development Languages. Hibernate Training Hibernate is a high-performance object-relational mapping tool and query service. Hibernate.
Chapter 13 Web Application Infrastructure
Introduction to Oracle Forms Developer and Oracle Forms Services
Introduction to Oracle Forms Developer and Oracle Forms Services
Text by: Lambert and Osborne
Introduction to Oracle Forms Developer and Oracle Forms Services
Design and Implementation
Unit 6-Chapter 2 Struts.
CMPE419 Mobile Application Development
Virus Attack Final Presentation
Chapter 2: System Structures
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
CMPE419 Mobile Application Development
Presentation transcript:

A Framework for Agricultural Model Development Kei Tanaka NARC-NARO

Contents of Presentation Background of model development Framework Efficiency of using framework Conclusions

Background of Agricultural Model Development Developed several agricultural models –Plant growth models (rice, pear, …) –Disease prediction models (wheat, pear, …) –Executable in an web page

Java APIs: Network, GUI, … Cross-platform: Windows, Linux, Mac OS, … Applet: If JRE is installed, additional installation work is not necessary. –Execution easily is important to popularize a model Secure programming

MetBroker A middleware between weather databases and agricultural models Provides consistent methods to access various weather databases through the Internet

Framework –Program library summarized to reuse for the specific purpose application. Advantages of using a Framework –Offers implementation Development productivity improves –Specifies a development method Quality of application is kept high

Frameworks Web MVC –Struts, Tapestry, JSF, Spring MVC, Web Work O/R Mapping –Hibernate, PriDE, O/R Broker, Mr.Persister Testing –JUnit, TestNG, JTiger SOA (Service Oriented Architecture) –Celtix, Beehive, JBoss jBPM

Common Features of Agricultural Models Management of data –Sequential value:Air Temp., Rain, … –Numerical value:Weight, Threshold, … –Date:Transplant date, … –Boolean value:Use or Not use Weather data acquisition from a MetBroker or a users local file Result display in a table or a chart

import net.agmodel.data.*; import net.agmodel.datareader.*; … public class PearDuthieData extends ExecutionDataImpl{ public BlastamData(){ //Setup for parameters and sequential data addValueElement(LEAF_WETNESS_THRESHOLD);//Declaration of a parameter setValue_(LEAF_WETNESS_THRESHOLD, 80.0);//Set of the initial value of a parameter addSequenceElement(AIRTEMPERATURE);//Declaration of a sequential data addSequenceElement(LEAFWETNESS); DataSourceAttribute dsAttrAirTemp = getDataSourceAttribute(AIRTEMPERATURE); DataSourceAttribute dsAttrLeafWet = getDataSourceAttribute(LEAFWETNESS); //Set of the data source of sequential data dsAttrAirTemp.addUsableDataSource(DataSourceElement.MET_BROKER);//MetBroker dsAttrAirTemp.addUsableDataSource(DataSourceElement.USER_DATA);//User Data dsAttrLeafWet.addUsableDataSource(DataSourceElement.MET_BROKER); dsAttrLeafWet.addUsableDataSource(DataSourceElement.USER_DATA); dsAttrLeafWet.addUsableDataSource(DataSourceElement.ESTIMATED_DATA);//Estimated Data … } public UserDataReader getUserDataReader(){ //Setup to aquire users local file data UserDataReaderImpl udReader = new UserDataReaderImpl(); udReader.addTextDataElement(new TextDataElement(AIRTEMPERATURE, AIRTEMPERATURE.toString(), "C")); udReader.addTextDataElement(new TextDataElement(LEAFWETNESS, LEAFWETNESS.toString(), "")); return udReader; } … } Example 1 Data Source Setup

public class PearDuthieData extends ExecutionDataImpl{ public BlastamData(){ addValueElement(LEAF_WETNESS_THRESHOLD); setValue_(LEAF_WETNESS_THRESHOLD, 80.0); addSequenceElement(AIRTEMPERATURE); addSequenceElement(LEAFWETNESS); DataSourceAttribute dsAttrAirTemp = getDataSourceAttribute(AIRTEMPERATURE); DataSourceAttribute dsAttrLeafWet = getDataSourceAttribute(LEAFWETNESS); //Set of the data source of sequential data dsAttrAirTemp.addUsableDataSource(DataSourceElement.MET_BROKER); dsAttrAirTemp.addUsableDataSource(DataSourceElement.USER_DATA); dsAttrLeafWet.addUsableDataSource(DataSourceElement.MET_BROKER); dsAttrLeafWet.addUsableDataSource(DataSourceElement.USER_DATA); dsAttrLeafWet.addUsableDataSource(DataSourceElement.ESTIMATED_DATA); … } public UserDataReader getUserDataReader(){ //Setup to aquire users local file data UserDataReaderImpl udReader = new UserDataReaderImpl(); udReader.addTextDataElement(new TextDataElement(AIRTEMPERATURE, AIRTEMPERATURE.toString(), "C")); udReader.addTextDataElement(new TextDataElement(LEAFWETNESS, LEAFWETNESS.toString(), "")); return udReader; } … }

public class PearDuthieTableUI extends net.agmodel.gui.ModelTableFrame{ //Display result data in a table protected SequenceTM[] createSequenceTM(ResultData data){ JigsawQuantityFormat jqf = new JigsawQuantityFormat("0", DEVOID);//Number format to display Sequence wetness = data.getSequence(WETNESS_DURATION); Sequence infection = data.getSequence(INFECTION_RATE); return new SequenceTM[]{//Array of sequential data displayed in a table new SequenceTM((MetSequence)data.getSequence(AIRTEMPERATURE)), new SequenceTM((MetSequence)data.getSequence(LEAFWETNESS)), new SequenceTM(data.getSequence(WETNESS_DURATION), WETNESS_DURATION.toString(), "h", SummaryKind.AVERAGE, jqf), new SequenceTM(data.getSequence(INFECTION_RATE), INFECTION_RATE.toString(), "", SummaryKind.MAXIMUM, jqf)}; } //Display result data in a chart protected SequenceC[] createSequenceC(ResultData data){ Interval in = data.getResultInterval(); Duration re = data.getResolution(); return new SequenceC[]{//Array of sequential data displayed in a chart new SequenceC((MetSequence)data.getSequence(AIRTEMPERATURE), in, re), new SequenceC((MetSequence)data.getSequence(LEAFWETNESS), in, re), new SequenceC(new SequenceU(data.getSequence(INFECTION_RATE), SummaryKind.MAXIMUM), INFECTION_RATE.toString(), null, null, in, re)}; } //Display result data in a map protected net.agmodel.gui.MultipleStationResultMap createMap(double latitude, double longitude){ return new PearDuthieMap((ResultData[])allData, latitude, longitude, , INFECTION_RATE.toString()); } Example 2 Result Display

public class BlastamTableUI extends net.agmodel.gui.ModelTableFrame{ //Display result data in a table protected SequenceTM[] createSequenceTM(ResultData data){ //Number format to display JigsawQuantityFormat jqf = new JigsawQuantityFormat("0", DEVOID); //Array of sequential data displayed in a table return new SequenceTM[]{ new SequenceTM((MetSequence)data.getSequence(AIRTEMPERATURE)), new SequenceTM((MetSequence)data.getSequence(RAIN)), new SequenceTM((MetSequence)data.getSequence(WIND)), new SequenceTM((MetSequence)data.getSequence(SUNSHINE))}; } //Display result data in a chart protected SequenceC[] createSequenceC(ResultData data){ Interval in = data.getResultInterval(); Duration re = data.getResolution(); return new SequenceC[]{//Array of sequential data displayed in a chart new SequenceC((MetSequence)data.getSequence(AIRTEMPERATURE), in, re), new SequenceC((MetSequence)data.getSequence(RAIN), in, re), new SequenceC((MetSequence)data.getSequence(WIND), in, re), new SequenceC((MetSequence)data.getSequence(SUNSHINE), in, re)}; } //Display result data in a map protected net.agmodel.gui.MultipleStationResultMap createMap(double latitude, double longitude){ return new BlastamMap((ResultData[])allData, latitude, longitude, , INFECTION_RATE.toString()); }

public class BlastamTableUI extends net.agmodel.gui.ModelTableFrame{ //Display result data in a table protected SequenceTM[] createSequenceTM(ResultData data){ //Number format to display JigsawQuantityFormat jqf = new JigsawQuantityFormat("0", DEVOID); //Array of sequential data displayed in a table return new SequenceTM[]{ new SequenceTM((MetSequence)data.getSequence(AIRTEMPERATURE)), new SequenceTM((MetSequence)data.getSequence(RAIN)), new SequenceTM((MetSequence)data.getSequence(WIND)), new SequenceTM((MetSequence)data.getSequence(SUNSHINE))}; } //Display result data in a chart protected SequenceC[] createSequenceC(ResultData data){ Interval in = data.getResultInterval(); Duration re = data.getResolution(); //Array of sequential data displayed in a chart return new SequenceC[]{ new SequenceC((MetSequence)data.getSequence(AIRTEMPERATURE), in, re), new SequenceC((MetSequence)data.getSequence(RAIN), in, re), new SequenceC((MetSequence)data.getSequence(WIND), in, re), new SequenceC((MetSequence)data.getSequence(SUNSHINE), in, re)}; } //Display result data in a map protected net.agmodel.gui.MultipleStationResultMap createMap(double latitude, double longitude){ return new BlastamMap((ResultData[])allData, latitude, longitude, , INFECTION_RATE.toString()); }

public class BlastamTableUI extends net.agmodel.gui.ModelTableFrame{ //Display result data in a table protected SequenceTM[] createSequenceTM(ResultData data){ //Number format to display JigsawQuantityFormat jqf = new JigsawQuantityFormat("0", DEVOID); //Array of sequential data displayed in a table return new SequenceTM[]{ new SequenceTM((MetSequence)data.getSequence(AIRTEMPERATURE)), new SequenceTM((MetSequence)data.getSequence(RAIN)), new SequenceTM((MetSequence)data.getSequence(WIND)), new SequenceTM((MetSequence)data.getSequence(SUNSHINE))}; } //Display result data in a chart protected SequenceC[] createSequenceC(ResultData data){ Interval in = data.getResultInterval(); Duration re = data.getResolution(); return new SequenceC[]{//Array of sequential data displayed in a chart new SequenceC((MetSequence)data.getSequence(AIRTEMPERATURE), in, re), new SequenceC((MetSequence)data.getSequence(RAIN), in, re), new SequenceC((MetSequence)data.getSequence(WIND), in, re), new SequenceC((MetSequence)data.getSequence(SUNSHINE), in, re)}; } //Display result data in a map protected net.agmodel.gui.MultipleStationResultMap createMap(double latitude, double longitude){ return new BlastamMap((ResultData[])allData, latitude, longitude, , INFECTION_RATE.toString()); }

Agricultural Models developed by using Framework ModelsContents of models JAPONICA Java version Program of Oryza-Nitrogen relation for Crop Growth Analysis MetBLASTAM Rice blast forecasting model PearDuthie Japanese pear scab infection forecasting model PearSugiura Pear blooming and cultivation date prediction model InsectDVR Insect generation prediction model WeedDamage Weed damage prediction model WeedEmergence Weed emergence prediction model LeafWetness Leaf wetness prediction model (3 models)

Efficiency of using Framework MetBLASTAM (Rice blast forecasting model) 2,000 lines was developed for the model 25,000 lines provided by the framework was called from the model program Calculation part (main part of the model) is 45% of the model program Developer can use much time to develop main part, not Data acquisition, GUI.

Conclusions Developed the framework for agricultural models Several models developed by using the framework Program for weather data acquisition and result display only lists data names Model developer can use much time to develop main part