0% found this document useful (0 votes)
42 views51 pages

1822 B.E Cse Batchno 137

This document appears to be a project report submitted for the partial fulfillment of a Bachelor of Engineering degree. It discusses using machine learning techniques for rainfall prediction. The document includes sections on the introduction, literature survey, methodology, results and discussion, and conclusion. It provides an abstract that machine learning algorithms like Naive Bayes, K-Nearest Neighbor, decision trees, neural networks, and fuzzy logic can be used for rainfall prediction and compares the accuracy of these different methods.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views51 pages

1822 B.E Cse Batchno 137

This document appears to be a project report submitted for the partial fulfillment of a Bachelor of Engineering degree. It discusses using machine learning techniques for rainfall prediction. The document includes sections on the introduction, literature survey, methodology, results and discussion, and conclusion. It provides an abstract that machine learning algorithms like Naive Bayes, K-Nearest Neighbor, decision trees, neural networks, and fuzzy logic can be used for rainfall prediction and compares the accuracy of these different methods.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

RAINFALL PREDICTION USING MACHINE

LEARNING TECHNIQUES
Submitted in partial fulfillment of the requirements for the reward of

Bachelor of Engineering degree in Computer Science and Engineering

By

KOPPOLLA KRISHNA BABU(38110263)

KASU PURUSHOTHAM REDDY(38110244)

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


SCHOOL OF COMPUTING
SATHYABAMA INSTITUTE OF SCIENCE AND TECHNOLOGY
JEPPIAAR NAGAR, RAJIV GANDHI SALAI,
CHENNAI – 600119. TAMILNADU.

MARCH 2022

I
SATHYABAMA
INSTITUTE OF SCIENCE AND TECHNOLOGY
(Established under Section 3 of UGC Act, 1956)
Jeppiaar Nagar, Rajiv Gandhi Salai, Chennai - 600119
www.sathyabama.ac.in

SCHOOL OF COMPUTING

BONAFIDE CERTIFICATE

This is to certify that this Professional Training Report is the bonafide work of
KOPPOLLA KRISHNABABU(38110263),KASU PURUSHOTHAM REDDY(38110244)
who underwent the professional training in “ RAINFALL PREDICTION USING
MACHINE LEARNING TECNIQUES” under our supervision from Nov 2021 to March
2022.

Internal Guide

DR. S. L. JANY SHABU

Head of the Department

Dr.S.VIGNESHWARI.,M.E.,(Ph.D)

Submitted for Viva voce Examination held on

Internal Examiner External Examiner

ii
DECLARATION

I, KOPPOLLA KRISHNA BABU(38110263),KASU PURUSHOTHAM


REDDY(38110244) hereby declare that the Professional Training Report on
“RAINFALL PREDICTION USING MACHINE LEARNING TECHNIQUES” done by me
under the guidance of DR. S. L. JANY SHABU at Sathyabama university is submitted
in partial fulfillment of the requirements for the award of Bachelor of Engineering degree
in computer science and engineering.

DATE:

PLACE: SIGNATURE OF THE CANDIDATE

iii
ACKNOWLEDGEMENT

I am pleased to acknowledge my sincere thanks Board of Management of SATHYABAMA

for their kind encouragement in doing this project and for completing it successfully. I am

grateful to them.

I convey my thanks to Dr .T. SASIKALA.,M.E.,Ph.D., Dean, School of Computing and

Dr.S.VIGNESHWARI.,M.E.,(Ph.D) Head of the Department, Dept of Computer Science

and Engineering for providing me necessary support and details at the right time during

the progressive reviews.

I would like to express my sincere and deep sense of gratitude to my Project Guide
DR. S. L. JANY SHABU for her valuable guidance, suggestions and constant
encouragement paved way for the successful completion of my project work.

I wish to express my thanks to all Teaching and Non-Teaching staff members of the
Department of Computer science and Engineering who were helpful in many ways for
the completion of the project.

iv
ABSTRACT

India is an agricultural country and its economy is largely based upon crop
productivity and rainfall. For analyzing the crop productivity, rainfall prediction is
require and necessary to all farmers. Rainfall Prediction is the application of science
and technology to predict the state of the atmosphere. It is important to exactly
determine the rainfall for effective use of water resources, crop productivity and pre
planning of water structures. Using different data mining techniques it can predict
rainfall. Data mining techniques are used to estimate the rainfall numerically. This
paper focuses some of the popular data mining algorithms for rainfall prediction.
Naive Bayes, K-Nearest Neighbour algorithm, Decision Tree, Neural Network and
fuzzy logic are some of the algorithms compared in this paper. From that
comparison, it can analyze which method gives better accuracy for rainfall
prediction.

v
TABLE

CHAPTER NO TITLE PAGE


NO

1. INTRODUCTION 1

1.1 BACKGROUND AND BASICS 1

1.2 EXISTING SYSTEM 1

1.3 DISADVANTEGS OF EXISTING SYSTEM 1

1.4 PROPOSED SYSTEM 2

1.5 ADVANTAGES OF PROPOSED SYSTEM 2

2. LITERATURE SURVEY 3

3. METHODOLOGY 5

3.1 SYSTEM REQUIRMENT SPECIFICATION 5

3.1.1 HARDWARE REQUIREMENTS 5

3.1.2 SOFTWARE REQUIREMENTS 5

3.2 SOFTWARE ENVIRONMENT 5

3.3 ARCHITECTURE 15

3.4 MODULES 16

3.5 DATAFLOW DIAGRAM 17

3.6 UML DIAGRAM 20

3.7 FEASIBILITY STUDY 23

3.8 SYSTEM DESIGN AND TESTING PLAN 24

4. RESULT AND DISCUSSION 29

5. CONCLUSION 30

VI

1
LIST OF FIGURES
FIGURE NO TITLE PAGE NO

3.3.1 ARCHITETURE 15

3.5.1 DATAFLOW DIAGRAM 1 18

3.5.2 DATAFLOW DIAGRAM 2 18

3.5.3 DATAFLOW DIAGRAM 3 19

3.5.4 DATAFLOW DIAGRAM 4 19

3.6.1 USECASE DIAGRAM 21

3.6.2 SEQUENCE DIAGRAM 22

3.6.3 ACTIVITY DIAGRAM 23

VII

1
CHAPTER 1
INTRODUCTION
1.1 BACKGROUND AND BASICS
Rainfall Prediction is one of the most challenging tasks. Though already many
algorithms have being proposed but still accurate prediction of rainfall is very
difficult. In an agricultural country like India, the success or failure of the crops and
water scarcity in any year is always viewed with greatest concern. A small
fluctuation in the seasonal rainfall can have devastating impacts on agriculture
sector. Accurate rainfall prediction has a potential benefit of preventing causalities
and damages caused by natural disasters. Under certain circumstances such as
flood and drought, highly accurate rainfall prediction is useful for agriculture
management and disaster prevention. In this paper, various algorithms have been
analyzed. Data mining techniques are efficiently used in rainfall prediction.

1.2 EXISTING SYSTEM


Agriculture is the strength of our Indian economy. Farmer only depends upon
monsoon to be their cultivation. The good crop productivity needs good soil,
fertilizer and also good climate. Weather forecasting is the very important
requirement of the each farmer. Due to the sudden changes in climate/weather,
The people are suffered economically and physically. Weather prediction is one of
the challenging problems in current state. The main motivation of this paper to
predict the weather using various data mining techniques. Such as classification,
clustering, decision tree and also neural networks. Weather related information is
also called the meteorological data. In this paper the most commonly used
weather parameters are rainfall, wind speed, temperature and cold.

1.3 DISADVANTAGES OF EXISTING SYSTEM


1.Classification
2.Clustering
3.Decision Tree

11
1.4 POPOSED SYSTEM

Rainfall is important for food production plan, water resource management and all activity
plans in the nature. The occurrence of prolonged dry period or heavy rain at the critical stages
of the crop growth and development may lead to significant reduce crop yield. India is an
agricultural country and its economy is largely based upon crop productivity. Thus rainfall
prediction becomes a significant factor in agricultural countries like India. Rainfall forecasting
has been one of the most scientifically and technologically challenging problems around the
world in the last century.

1.5 ADVANTAGES OF PROPOSED SYSTEM

1.Numerical Weather Pediction

2.Statistical Weather Prediction

3.Synoptic Weather Prediction

2
CHAPTER 2
LITERATURE SURVEY

 Pritpal Singh et al.[1] Measurable investigation shows the idea of ISMR, which can't
be precisely anticipated by insights or factual information. Hence, this review
exhibits the utilization of three techniques: object creation, entropy, and artificial
neural network (ANN). In view of this innovation, another technique for anticipating
ISMR times has been created to address the idea of ISMR. This model has been
endorsed and supported by the studio and exploration data. Factual examination of
different information and near investigations showing the presentation of the normal
technique
 Sam Carmer , Michael Kampouridis, Alex A. Freitas , Antonios Alexandridis et al.[2]
The primary impact of this movement is to exhibit the advantages of AI calculations,
just as the more prominent degree of clever framework than the advanced rainfall
determining methods. We analyze and think about the momentum execution
(Markov chain stretched out by rainfall research) with the forecasts of the six most
notable AI machines: Genetic programming, Vector relapse support, radio
organizations, M5 organizations, M5 models, models - Happy. To work with a more
itemized appraisal, we led a rainfall overview utilizing information from 42
metropolitan urban communities.

 Sahar Hadi Poura , Shamsuddin Shahida, Eun-Sung chungb et al. [3] RF was
utilized to anticipate assuming that it would rain in one day, while SVM was utilized
to foresee downpour on a blustery day. The limit of the Hybrid model was fortified by
the decrease of day-by-day rainfall in three spots at the rainfall level in the eastern
piece of Malaysia. Crossover models have likewise been found to emulate the full
change, the quantity of days straight, 95% of the month-to-month rainfall, and the
dispersion of the noticed rainfall
.
 Tanvi Patil, Dr. Kamal Shah et al. [4] The reason for the framework is to anticipate

3
the climate sooner or later. Climatic still up in the air utilizing various sorts of factors
all over the place. Of these, main the main highlights are utilized in climate
conjectures. Picking something like this relies a great deal upon the time you pick.
Underlying displaying is utilized to incorporate the fate of demonstrating, AI
applications, data trade, and character examination.

 N.Divya Prabha, P. Radha et al. [5] Contrasted with different spots where rainfall
information isn't accessible, it consumes a large chunk of the day to build up a solid
water overview for a long time. Improving complex neural organizations is intended
to be a brilliant instrument for anticipating the stormy season. This downpour
succession was affirmed utilizing a complex perceptron neural organization.
Estimations like MSE (Early Modeling), NMSE (Usually Early Error), and the
arrangement of informational collections for transient arranging are clear in the
examination of different organizations, like Adanaive. AdaSVM.
 Senthamil Selvi S, Seetha et al. [6] In this paper, Artificial Neural Network (ANN)
innovation is utilized to foster a climate anticipating strategy to distinguish rainfall
utilizing Indian rainfall information. Along these lines, Feed Forward Neural Network
(FFNN) was utilized utilizing the Backpropagation Algorithm. Execution of the two
models is assessed dependent on emphasis examination, Mean Square Error
(MSE) and Magnitude of Relative Error (MRE). This report likewise gives a future
manual for rainfall determining.

 YashasAthreya, VaishaliBV, SagarK and SrinidhiHR, et al.[7] This page features


rainfall investigation speculations utilizing Machine Learning. The principle
motivation behind utilizing this program is to secure against the impacts of floods.
This program can be utilized by conventional residents or the public authority to
anticipate what will occur before the flood. The flood card, then, at that point, furnish
them with the vital help by moving versatile or other important measures.

4
CHAPTER 3
METHODOLOGY
3.1 System Requirement Specification

3.1.1 HARDWARE REQUIREMENTS:


System - Windows7/10
Speed - 2.4GHZ
Hard disk - 40GB
Monitor - 15VGA Color
Ram - 4GB

3.1.2 SOFTWARE REQUIREMENTS:


Coding Language - PYTHON
IDE - PYCHARM

3.2 SOFTWARE ENVIRONMENT

Python:

Python is a high-level, interpreted, interactive and object-oriented scripting language. Python is


designed to be highly readable. It uses English keywords frequently where as other languages use
punctuation, and it has fewer syntactical constructions than other languages.

 Python is Interpreted − Python is processed at runtime by the interpreter. You do not need
to compile your program before executing it. This is similar to PERL and PHP.

 Python is Interactive − You can actually sit at a Python prompt and interact with the
interpreter directly to write your programs.

 Python is Object-Oriented − Python supports Object-Oriented style or technique of


programming that encapsulates code within objects.

 Python is a Beginner's Language − Python is a great language for the beginner-level


programmers and supports the development of a wide range of applications from simple text
processing to WWW browsers to games.

History of Python

Python was developed by Guido van Rossum in the late eighties and early nineties at the National
Research Institute for Mathematics and Computer Science in the Netherlands.

5
Python is derived from many other languages, including ABC, Modula-3, C, C++, Algol-68,
SmallTalk, and Unix shell and other scripting languages.

Python is copyrighted. Like Perl, Python source code is now available under the GNU General
Public License (GPL).

Python is now maintained by a core development team at the institute, although Guido van Rossum
still holds a vital role in directing its progress.

Python Features

Python's features include −

 Easy-to-learn − Python has few keywords, simple structure, and a clearly defined
syntax. This allows the student to pick up the language quickly.

 Easy-to-read − Python code is more clearly defined and visible to the eyes.

 Easy-to-maintain − Python's source code is fairly easy-to-maintain.

 A broad standard library − Python's bulk of the library is very portable and cross-
platform compatible on UNIX, Windows, and Macintosh.

 Interactive Mode − Python has support for an interactive mode which allows
interactive testing and debugging of snippets of code.

 Portable − Python can run on a wide variety of hardware platforms and has the
same interface on all platforms.

 Extendable − You can add low-level modules to the Python interpreter. These
modules enable programmers to add to or customize their tools to be more efficient.

 Databases − Python provides interfaces to all major commercial databases.

 GUI Programming − Python supports GUI applications that can be created and
ported to many system calls, libraries and windows systems, such as Windows
MFC, Macintosh, and the X Window system of Unix.

 Scalable − Python provides a better structure and support for large programs than
shell scripting.

6
Getting Python
The most up-to-date and current source code, binaries, documentation, news, etc., is
available on the official website of Python https://www.python.org.
Windows Installation
Here are the steps to install Python on Windows machine.
 Open a Web browser and go to https://www.python.org/downloads/.

 Follow the link for the Windows installer python-XYZ.msifile where XYZ is the
version you need to install.

 To use this installer python-XYZ.msi, the Windows system must support Microsoft
Installer 2.0. Save the installer file to your local machine and then run it to find out if
your machine supports MSI.

 Run the downloaded file. This brings up the Python install wizard, which is really
easy to use. Just accept the default settings, wait until the install is finished, and you
are done.

The Python language has many similarities to Perl, C, and Java. However, there are some
definite differences between the languages.

First Python Program


Let us execute programs in different modes of programming.

Interactive Mode Programming


Invoking the interpreter without passing a script file as a parameter brings up the following
prompt −

$ python

Python2.4.3(#1,Nov112010,13:34:43)

[GCC 4.1.220080704(RedHat4.1.2-48)] on linux2

Type"help","copyright","credits"or"license"for more information.

>>>

7
Type the following text at the Python prompt and press the Enter −

>>>print"Hello, Python!"

If you are running new version of Python, then you would need to use print statement with
parenthesis as in print ("Hello, Python!");. However in Python version 2.4.3, this
produces the following result −

Hello, Python!

Script Mode Programming


Invoking the interpreter with a script parameter begins execution of the script and continues
until the script is finished. When the script is finished, the interpreter is no longer active.
Let us write a simple Python program in a script. Python files have extension .py. Type the
following source code in a test.py file −

print"Hello, Python!"

We assume that you have Python interpreter set in PATH variable. Now, try to run this
program as follows −

$ python test.py

This produces the following result −

Hello, Python!

Flask Framework:

Flask is a web application framework written in Python. Armin Ronacher, who leads
an international group of Python enthusiasts named Pocco, develops it. Flask is based on
Werkzeug WSGI toolkit and Jinja2 template engine. Both are Pocco projects.

Http protocol is the foundation of data communication in world wide web. Different
methods of data retrieval from specified URL are defined in this protocol.

8
The following table summarizes different http methods −

Sr.No Methods & Description

1 GET

Sends data in unencrypted form to the server. Most common method.

2 HEAD

Same as GET, but without response body

3 POST

Used to send HTML form data to server. Data received by POST method is
not cached by server.

4 PUT

Replaces all current representations of the target resource with the uploaded
content.

5 DELETE

Removes all current representations of the target resource given by a URL

By default, the Flask route responds to the GET requests. However, this preference can
be altered by providing methods argument to route() decorator.

In order to demonstrate the use of POST method in URL routing, first let us create an
HTML form and use the POST method to send form data to a URL.

Save the following script as login.html

<html>

9
<body>

<formaction="http://localhost:5000/login"method="post">

<p>Enter Name:</p>

<p><inputtype="text"name="nm"/></p>

<p><inputtype="submit"value="submit"/></p>

</form>

</body>

</html>

Now enter the following script in Python shell.

from flask importFlask, redirect,url_for, request

app=Flask(__name__)

@app.route('/success/<name>')

def success(name):

return'welcome %s'% name

@app.route('/login',methods=['POST','GET'])

def login():

ifrequest.method=='POST':

user=request.form['nm']

return redirect(url_for('success',name= user))

else:

user=request.args.get('nm')

10
return redirect(url_for('success',name= user))

if __name__ =='__main__':

app.run(debug =True)

After the development server starts running, open login.html in the browser, enter name
in the text field and click Submit.

Form data is POSTed to the URL in action clause of form tag.

http://localhost/login is mapped to the login() function. Since the server has received
data by POST method, value of „nm‟ parameter obtained from the form data is obtained by

user = request.form['nm']

It is passed to „/success‟ URL as variable part. The browser displays


a welcome message in the window.

11
Change the method parameter to „GET‟ in login.html and open it again in the browser.
The data received on server is by the GET method. The value of „nm‟ parameter is now
obtained by −

User = request.args.get(„nm‟)

Here, args is dictionary object containing a list of pairs of form parameter and its
corresponding value. The value corresponding to „nm‟ parameter is passed on to
„/success‟ URL as before.

Python Install

Many PCs and Macs will have python already installed.

To check if you have python installed on a Windows PC, search in the start bar for Python
or run the following on the Command Line (cmd.exe):

C:\Users\Your Name>python --version

To check if you have python installed on a Linux or Mac, then on linux open the command
line or on Mac open the Terminal and type:

python --version

If you find that you do not have python installed on your computer, then you can download
it for free from the following website: https://www.python.org/

12
Python Quickstart

Python is an interpreted programming language, this means that as a developer you write
Python (.py) files in a text editor and then put those files into the python interpreter to be
executed.

The way to run a python file is like this on the command line:

C:\Users\Your Name>python helloworld.py

Where "helloworld.py" is the name of your python file.

Let's write our first Python file, called helloworld.py, which can be done in any text editor.

helloworld.py

print("Hello, World!")

Simple as that. Save your file. Open your command line, navigate to the directory where
you saved your file, and run:

C:\Users\Your Name>python helloworld.py

The output should read:

Hello, World!

Congratulations, you have written and executed your first Python program.

The Python Command Line

To test a short amount of code in python sometimes it is quickest and easiest not to write
the code in a file. This is made possible because Python can be run as a command line
itself.

Type the following on the Windows, Mac or Linux command line:

C:\Users\Your Name>python

From there you can write any python, including our hello world example from earlier in the
tutorial:

13
C:\Users\Your Name>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello, World!")

Which will write "Hello, World!" in the command line:

C:\Users\Your Name>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello, World!")
Hello, World!

Whenever you are done in the python command line, you can simply type the following to
quit the python command line interface:

exit()
Execute Python Syntax
As we learned in the previous page, Python syntax can be executed by writing directly in
the Command Line:
>>> print("Hello, World!")
Hello, World!
Or by creating a python file on the server, using the .py file extension, and running it in the
Command Line:
C:\Users\Your Name>python myfile.py

Python Indentations
Where in other programming languages the indentation in code is for readability only, in
Python the indentation is very important.
Python uses indentation to indicate a block of code.
Example
if 5 > 2:
print("Five is greater than two!")
Python will give you an error if you skip the indentation:
Example
if 5 > 2:
print("Five is greater than two!")

14
Comments
Python has commenting capability for the purpose of in-code documentation.
Comments start with a #, and Python will render the rest of the line as a comment:
Example
Comments in Python:
#This is a comment.
print("Hello, World!")
Docstrings
Python also has extended documentation capability, called docstrings.
Docstrings can be one line, or multiline.
Python uses triple quotes at the beginning and end of the docstring:
Example
Docstrings are also comments:
"""This is a
multiline docstring."""
print("Hello, World!")
3.3 ARCHITECTURE

3.3.1 ARCHITETURE FIGURE

15
3.4 MODULES

• Data Collection

• Data Cleaning

• Data Selection

• Data Transformation

• Data Mining Stage

Data Collection

The data used for this work was collected from meteorologist‟s centre. The case data
covered the period of 2012 to 2015. The following procedures were adopted at this stage of
the research: Data Cleaning, Data Selection, Data Transformation and Data Mining.

Data Cleaning

In this stage, a consistent format for the data model was developed which is search
missing data, finding duplicated data, and weeding out of bad data. Finally system cleaned
data were transformed into a format suitable for data mining.

Data Selection

At this stage, data relevant to the analysis like decision tree was decided on and retrieved
from the dataset. The Meteorological dataset had ten attributes in that were using two
attributes for future prediction. Due to the nature of the Cloud Form data where all the
values are the same and the high percentage of missing values in the sunshine data both
were not used in the analysis.

Data Transformation

“This is also known as data consolidation”. It is the stage in which the selected data is
transformed into forms appropriate for data mining. The data file was saved in Commas

16
Separated Value (CVS) file format and the datasets were normalized to reduce the effect of
scaling on the data.

Data Mining Stage

The data mining stage was divided into three phases. At each phase all the algorithms
were used to analyse the meteorological datasets. The testing method adopted for this
research was percentage split that train on a percentage of the dataset, cross validate on it
and test on the remaining percentage. There after interesting patterns representing
knowledge were identified.

3.5 DATA FLOW DIAGRAM

1. The DFD is also called as bubble chart. It is a simple graphical formalism that can
be used to represent a system in terms of input data to the system, various
processing carried out on this data, and the output data is generated by this system.
2. The data flow diagram (DFD) is one of the most important modeling tools. It is used
to model the system components. These components are the system process, the
data used by the process, an external entity that interacts with the system and the
information flows in the system.
3. DFD shows how the information moves through the system and how it is modified
by a series of transformations. It is a graphical technique that depicts information
flow and the transformations that are applied as data moves from input to output.
4. DFD is also known as bubble chart. A DFD may be used to represent a system at
any level of abstraction. DFD may be partitioned into levels that represent increasing
information flow and functional detail.

17
LEVEL - 0

3.5.1 DATAFLOW DIAGRAM 1

LEVEL - 1

3.5.2 DATAFLOW DIAGRAM 2

18
LEVEL - 2

3.5.3 DATAFLOW DIAGRAM 3

LEVEL – 3

3.5.4 DATAFLOW DIAGRAM 4

19
3.6 UML DIAGRAMS

UML stands for Unified Modeling Language. UML is a standardized general-purpose


modeling language in the field of object-oriented software engineering. The standard is
managed, and was created by, the Object Management Group.
The goal is for UML to become a common language for creating models of object
oriented computer software. In its current form UML is comprised of two major
components: a Meta-model and a notation. In the future, some form of method or process
may also be added to; or associated with, UML.
The Unified Modeling Language is a standard language for specifying, Visualization,
Constructing and documenting the artifacts of software system, as well as for business
modeling and other non-software systems.
The UML represents a collection of best engineering practices that have proven
successful in the modeling of large and complex systems.
The UML is a very important part of developing objects oriented software and the
software development process. The UML uses mostly graphical notations to express the
design of software projects.

GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that they can
develop and exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Support higher level development concepts such as collaborations, frameworks, patterns
and components.
7. Integrate best practices.
USE CASE DIAGRAM:
A use case diagram in the Unified Modeling Language (UML) is a type of behavioral
diagram defined by and created from a Use-case analysis. Its purpose is to present a
20
graphical overview of the functionality provided by a system in terms of actors, their goals
(represented as use cases), and any dependencies between those use cases. The main
purpose of a use case diagram is to show what system functions are performed for which
actor. Roles of the actors in the system can be depicted.

3.6.1 USECASE DIAGRAM

SEQUENCE DIAGRAM:
A sequence diagram in Unified Modeling Language (UML) is a kind of interaction diagram
that shows how processes operate with one another and in what order. It is a construct of a
Message Sequence Chart. Sequence diagrams are sometimes called event diagrams,
event scenarios, and timing diagrams.

21
3.6.2 SEQUENCE DIAGRAM

ACTIVITY DIAGRAM:
Activity diagrams are graphical representations of workflows of stepwise activities and
actions with support for choice, iteration and concurrency. In the Unified Modeling
Language, activity diagrams can be used to describe the business and operational step-by-
step workflows of components in a system. An activity diagram shows the overall flow of
control.

22
3.6.3 ACTIVITY DIAGRAM

3.7 FEASIBILITY STUDY

The feasibility of the project is analyzed in this phase and business proposal is put
forth with a very general plan for the project and some cost estimates. During system
analysis the feasibility study of the proposed system is to be carried out. This is to ensure
that the proposed system is not a burden to the company. For feasibility analysis, some
understanding of the major requirements for the system is essential.
The feasibility study investigates the problem and the information needs of the
stakeholders. It seeks to determine the resources required to provide an information
systems solution, the cost and benefits of such a solution, and the feasibility of such a
solution.

23
The goal of the feasibility study is to consider alternative information systems solutions,
evaluate their feasibility, and propose the alternative most suitable to the organization. The
feasibility of a proposed solution is evaluated in terms of its components.

ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will have on the
organization. The amount of fund that the company can pour into the research and
development of the system is limited. The expenditures must justified. Thus the
developed system as well within the budget and this was achieved because most of the
technologies used are freely available. Only the customized products had to be
purchased.

TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical requirements
of the system. Any system developed must not have a high demand on the available
technical resources. This will lead to high demands on the available technical resources.
This will lead to high demands being placed on the client. The developed system must
have a modest requirement, as only minimal or null changes are required for implementing
this system.
SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently. The user
must not feel threatened by the system, instead must accept it as a necessity.

3.8 SYSTEM DESIGN AND TESTING PLAN

INPUT DESIGN
The input design is the link between the information system and the user. It
comprises the developing specification and procedures for data preparation and those
steps are necessary to put transaction data in to a usable form for processing can be
achieved by inspecting the computer to read data from a written or printed document or it
can occur by having people keying the data directly into the system. The design of input
24
focuses on controlling the amount of input required, controlling the errors, avoiding delay,
avoiding extra steps and keeping the process simple. The input is designed in such a way
so that it provides security and ease of use with retaining the privacy. Input Design
considered the following things:
 What data should be given as input?
 How the data should be arranged or coded?
 The dialog to guide the operating personnel in providing input.
 Methods for preparing input validations and steps to follow when error occur.
OUTPUT DESIGN
A quality output is one, which meets the requirements of the end user and presents
the information clearly. In any system results of processing are communicated to the users
and to other system through outputs. In output design it is determined how the information
is to be displaced for immediate need and also the hard copy output. It is the most
important and direct source information to the user. Efficient and intelligent output design
improves the system‟s relationship to help user decision-making.
The output form of an information system should accomplish one or more of the following
objectives.
 Convey information about past activities, current status or projections of the
 Future.
 Signal important events, opportunities, problems, or warnings.
 Trigger an action.
 Confirm an action.
Test plan
Software testing is the process of evaluation a software item to detect differences between
given input and expected output. Also to assess the feature of a software item. Testing
assesses the quality of the product. Software testing is a process that should be done
during the development process. In other words software testing is a verification and
validation process.

Verification

Verification is the process to make sure the product satisfies the conditions imposed at the
start of the development phase. In other words, to make sure the product behaves the way

25
we want it to.

Validation

Validation is the process to make sure the product satisfies the specified requirements at
the end of the development phase. In other words, to make sure the product is built as per
customer requirements.

Basics of software testing

There are two basics of software testing: black box testing and white box testing.

Black box Testing

Black box testing is a testing technique that ignores the internal mechanism of the system
and focuses on the output generated against any input and execution of the system. It is
also called functional testing.

White box Testing

White box testing is a testing technique that takes into account the internal mechanism of a
system. It is also called structural testing and glass box testing. Black box testing is often
used for validation and white box testing is often used for verification.

Types of testing:

There are many types of testing like

 Unit Testing
 Integration Testing
 Functional Testing
 System Testing
 Stress Testing
 Performance Testing
 Usability Testing

26
 Acceptance Testing
 Regression Testing
 Beta Testing

Unit Testing

Unit testing is the testing of an individual unit or group of related units. It falls under the
class of white box testing. It is often done by the programmer to test that the unit he/she
has implemented is producing expected output against given input.

Integration Testing

Integration testing is testing in which a group of components are combined to produce


output. Also, the interaction between software and hardware is tested in integration testing
if software and hardware components have any relation. It may fall under both white box
testing and black box testing.

Functional Testing

Functional testing is the testing to ensure that the specified functionality required in the
system requirements works. It falls under the class of black box testing.

System Testing

System testing is the testing to ensure that by putting the software in different
environments (e.g., Operating Systems) it still works. System testing is done with full
system implementation and environment. It falls under the class of black box testing.

Stress Testing

Stress testing is the testing to evaluate how system behaves under unfavorable conditions.
Testing is conducted at beyond limits of the specifications. It falls under the class of black
box testing.

Performance Testing

27
Performance testing is the testing to assess the speed and effectiveness of the system and
to make sure it is generating results within a specified time as in performance
requirements. It falls under the class of black box testing.

Usability Testing

Usability testing is performed to the perspective of the client, to evaluate how the GUI is
user-friendly? How easily can the client learn? After learning how to use, how proficiently
can the client perform? How pleasing is it to use its design? This falls under the class of
black box testing.

Acceptance Testing

Acceptance testing is often done by the customer to ensure that the delivered product
meets the requirements and works as the customer expected. It falls under the class of
black box testing.

Regression Testing

Regression testing is the testing after modification of a system, component, or a group of


related units to ensure that the modification is working correctly and is not damaging or
imposing other modules to produce unexpected results. It falls under the class of black box
testing.

28
CHAPTER 4
RESULTS AND DISCUSSION
Decision Tree, Random Forest, Simple Linear Regression and multinomial
regression are the classification method used for time series predict in this
research work. Two group are separated from the data set for training and for
testing the algorithms of classification. To execute the classification
algorithms, the tool used is flask webapp data examination. For classification
procedure no more than a separation of data is particular from the loaded
data. To choose a subset from innovative data, “Select attribute” are utilised
by the operative. The preferred subset is then subjected to “X-Validation”
operator. It develop the classification representation which is validated by the
test data.

29
CHAPTER 5
CONCLUSION
Weather forecasting is a meteorological work that easy to modify researcher work by
applying the numerical weather prediction method. Weather forecasted by using various
data mining techniques especially classification clustering and neural network, decision
tree. The key aim for improving the classification and prediction performance for the
traditional; weather prediction model is designed and developed in this work. But some
limitation of the model is also observed, thus in near future need to be review before use of
the proposed technique. And also soil there are some issues and challenges in which
better implement of data mining technique should be implemented in field of weather
forecasting.

FUTURE WORK
The future work of the project would be the improvement of architecture for light and other
weather scenarios. Also, can develop a model for small changes in climate in future. An
algorithm for testing daily basis dataset instead of accumulated dataset could be of
paramount Importance for further research.

30
REFERENCES:
[1] Xiong, Lihua, and Kieran M. OConnor. “An empirical method to improve the prediction
limits of the GLUE methodology in rainfallrunoff modeling.” Journal of Hydrology 349.1-2
(2008): 115-124.
[2] Schmitz, G. H., and J. Cullmann. “PAI-OFF: A new proposal for online flood forecasting
in flash flood prone catchments.” Journal of hydrology 360.1-4 (2008): 1-14.
[3] Riordan, Denis, and Bjarne K. Hansen. “A fuzzy casebased system for weather
prediction.” Engineering Intelligent Systems for Electrical Engineering and Communications
10.3 (2002): 139-146.
[4] Guhathakurta, P. “Long-range monsoon rainfall prediction of 2005 for the districts and
sub-division Kerala with artificial neural network.” Current Science 90.6 (2006): 773-779.
[5] Pilgrim, D. H., T. G. Chapman, and D. G. Doran. “Problems of rainfall-runoff modelling
in arid and semiarid regions.” Hydrological Sciences Journal 33.4 (1988): 379-400.
[6] Lee, Sunyoung, Sungzoon Cho, and Patrick M. Wong. “Rainfall prediction using artificial
neural networks.” journal of geographic information and Decision Analysis 2.2 (1998): 233-
242..
[7] French, Mark N., Witold F. Krajewski, and Robert R. Cuykendall. “Rainfall forecasting in
space and time using a neural network.” Journal of hydrology 137.1-4 (1992): 1-31.
[8] Charaniya, Nizar Ali, and Sanjay V. Dudul. “Committee of artificial neural networks for
monthly rainfall prediction using wavelet transform.” Business, Engineering and Industrial
Applications (ICBEIA), 2011 International Conference on. IEEE, 2011.
[9] Noone, David, and Harvey Stern. “Verification of rainfall forecasts from the Australian
Bureau of Meteorology‟s Global Assimilation and Prognosis(GASP) system.” Australian
Meteorological Magazine 44.4 (1995): 275-286.
[10] Hornik, Kurt, Maxwell Stinchcombe, and Halbert White. “Multilayer feedforward
networks are universal approximators.” Neural networks 2.5 (1989): 359-366.
[11] Haykin, Simon. Neural networks: a comprehensive foundation. Prentice Hall PTR,
1994.
[12] Rajeevan, M., Pulak Guhathakurta, and V. Thapliyal. “New models for long range
forecasts of summer monsoon rainfall over North West and Peninsular India.” Meteorology
and Atmospheric Physics 73.3-4 (2000): 211-225.

31
APPENDICES:
SAMPLE CODE:
from flask import Flask, render_template, session, redirect, url_for
from flask_wtf import FlaskForm
from wtforms import (StringField, BooleanField, DateTimeField, RadioField, SelectField,
TextField, TextAreaField, SubmitField)
from wtforms.validators import DataRequired
from soils import soils,advice
from rainfall_prediction import rainfall_regressor
app = Flask(__name__)
app.config['SECRET_KEY']='mykey'
class GenieSoilForm(FlaskForm):
soil_type=SelectField(u'SelectaSoilype:',choices=
[('soil_type_null','Null'),('soil_type_alluvial','Alluvial'),('soil_type_red','Red'),

('soil_type_black','Black'),('soil_type_mountain','Mountain'),

('soil_type_laterite','Laterite'),('soil_type_desert','Desert')])
submit = SubmitField('Submit')
class GenieCropForm(FlaskForm):
crop_option=SelectField(u'SelectaCropkind:',choices
=[('crop_option_null','Null'),('crop_option_rice','Rice'),('crop_option_wheat','Wheat'),
('crop_option_sugarcane','Sugarcane'),('crop_option_groundnut','Groundnut'),
('crop_option_apple','Apple'),('crop_option_strawberry','Strawberry'),
('crop_option_maize','Maize'),('crop_option_grapes','Grapes'),('crop_option_coffee','Coffee')
])
submit = SubmitField('Submit')
class GenieFertilizerForm(FlaskForm):
soil_type = SelectField(u'Select a Soil type:',choices =
[('soil_type_null','Null'),('soil_type_alluvial','Alluvial'),('soil_type_red','Red'),

32
('soil_type_black','Black'),('soil_type_mountain','Mountain'),

('soil_type_laterite','Laterite'),('soil_type_desert','Desert')])

crop_option = SelectField(u'Select a Crop kind:', choices


=[('crop_option_null','Null'),('crop_option_rice','Rice'),('crop_option_wheat','Wheat'),
('crop_option_sugarcane','Sugarcane'),('crop_option_groundnut','Groundnut'),
('crop_option_apple','Apple'),('crop_option_strawberry','Strawberry'),
('crop_option_maize','Maize'),('crop_option_grapes','Grapes'),('crop_option_coffee','Coffee')
])
submit = SubmitField('Request')
@app.route('/',methods=['GET','POST'])
def index():
return render_template("home.html")
@app.route('/about-and-download')
def about():
return render_template("about.html")
@app.route('/irrigation-flow')
def irrigation_flow():
return render_template('irrigation-flow.html')
@app.route('/rainfall-prediction/graphs')
def rainfall_prediction_graph():
return render_template('rainfall-prediction-graphs.html')
@app.route('/rainfall-prediction')
def rainfall_prediction():
rainfall_data_tuple = rainfall_regressor.rain_predictor()
june_pred_linear = rainfall_data_tuple[0]['June']
july_pred_linear = rainfall_data_tuple[0]['July']
august_pred_linear = rainfall_data_tuple[0]['August']
september_pred_linear = rainfall_data_tuple[0]['September']
october_pred_linear = rainfall_data_tuple[0]['October']
june_pred_polynomial = rainfall_data_tuple[1]['June']
july_pred_polynomial = rainfall_data_tuple[1]['July']
33
august_pred_polynomial = rainfall_data_tuple[1]['August']
september_pred_polynomial = rainfall_data_tuple[1]['September']
october_pred_polynomial = rainfall_data_tuple[1]['October']
return render_template('rainfall_prediction.html', august_pred_linear =
august_pred_linear , september_pred_linear = september_pred_linear,
october_pred_linear = october_pred_linear , june_pred_linear = june_pred_linear,
july_pred_linear = july_pred_linear june_pred_polynomial = june_pred_polynomial,
july_pred_polynomial = july_pred_polynomial, august_pred_polynomial =
august_pred_polynomial,september_pred_polynomial=september_pred_polynomial,
october_pred_polynomial = october_pred_polynomial)
@app.route('/agro-guru')
def soil_guru():
return render_template('soil_guru.html')
@app.route('/agro-guru/alluvial-soil')
def alluvial_soil():
data = soils.alluvial_soil_data()
crops = data['crop']
messages = data['description']
message_length = len(messages)
name = data['name']
return render_template('alluvial-soil.html', crops = crops, messages = messages,
message_length = message_length, name = name)
@app.route('/agro-guru/red-soil')
def red_soil():
data = soils.red_soil_data()
crops = data['crop']
messages = data['description']
message_length = len(messages)
name = data['name']
return render_template('red-soil.html', crops = crops, messages = messages,
message_length = message_length, name = name)
@app.route('/agro-guru/black-soil')
def black_soil():
34
data = soils.black_soil_data()
crops = data['crop']
messages = data['description']
message_length = len(messages)
name = data['name']
return render_template('black-soil.html', crops = crops, messages = messages,
message_length = message_length, name = name)
@app.route('/agro-guru/mountain-soil')
def mountain_soil():
data = soils.mountain_soil_data()
crops = data['crop']
messages = data['description']
message_length = len(messages)
name = data['name']
return render_template('mountain-soil.html', crops = crops, messages = messages,
message_length = message_length, name = name)
@app.route('/agro-guru/laterite-soil')
def laterite_soil():
data = soils.laterite_soil_data()
crops = data['crop']
messages = data['description']
message_length = len(messages)
name = data['name']
return render_template('laterite-soil.html', crops = crops, messages = messages,
message_length = message_length, name = name)
@app.route('/agro-guru/desert-soil')
def desert_soil():
data = soils.desert_soil_data()
crops = data['crop']
messages = data['description']
message_length = len(messages)
name = data['name']
return render_template('desert-soil.html', crops = crops, messages = messages,
35
message_length = message_length, name = name)
@app.route('/agro-genie',methods=['GET','POST'])
def soil_genie():
form_soil = GenieSoilForm()
form_crop = GenieCropForm()
form_fertilizer = GenieFertilizerForm()
session['formtype'] = False
if form_fertilizer.validate_on_submit():
session['soil_type'] = form_fertilizer.soil_type.data
session['crop_option'] = form_fertilizer.crop_option.data
session['formtype'] = 'fertilizer_genie'
return redirect(url_for('soil_genie_result'))
if form_soil.validate_on_submit():
session['soil_type'] = form_soil.soil_type.data
session['formtype'] = 'soil_genie'
return redirect(url_for('soil_genie_result'))
elif form_crop.validate_on_submit():
session['crop_option'] = form_crop.crop_option.data
session['formtype'] = 'crop_genie'
return redirect(url_for('soil_genie_result'))
return render_template('soil-genie.html', form_soil = form_soil , form_crop =
form_crop,form_fertilizer = form_fertilizer)
@app.route('/agro-genie/advice')
#Naive Bayes,Decision Tree For Soil Analysis
def soil_genie_result():
soil_type_result = False
crop_list = False
soil_list = False
crop_option_result = False
messages_advice = False
points_advice = False
compatibility_string = False
form_type = 'NoForm'
36
if not session['formtype']:
pass
elif session['formtype'] == 'soil_genie':
data_publish = soils.soil_to_crop(session['soil_type'])
soil_type_result = data_publish['soil_type']
crop_list = data_publish['crop_list']
form_type = 'soil_genie'
pass
elif session['formtype'] == 'crop_genie':
data_publish = soils.crop_to_soil(session['crop_option'])
soil_list = data_publish['soil_list']
crop_option_result = data_publish['crop_option_result']
form_type = 'crop_genie'
pass
elif session['formtype'] == 'fertilizer_genie':
data_publish_fertilizer = advice.advice(session['soil_type'], session['crop_option'])
messages_advice = data_publish_fertilizer['advice_messages']
points_advice = data_publish_fertilizer['advice_points']
soil_type_result = data_publish_fertilizer['soil_type']
crop_option_result = data_publish_fertilizer['crop_option']
compatibility_string = data_publish_fertilizer['compatibility']
form_type = 'fertilizer_genie'
pass

37
SCREENSHOTS:

38
39
40
PUBLICATION WITH PLAGARISM REPORT

41
42
43
44

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy