1822 B.E Cse Batchno 137
1822 B.E Cse Batchno 137
LEARNING TECHNIQUES
Submitted in partial fulfillment of the requirements for the reward of
By
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.VIGNESHWARI.,M.E.,(Ph.D)
ii
DECLARATION
DATE:
iii
ACKNOWLEDGEMENT
for their kind encouragement in doing this project and for completing it successfully. I am
grateful to them.
and Engineering for providing me necessary support and details at the right time during
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
1. INTRODUCTION 1
2. LITERATURE SURVEY 3
3. METHODOLOGY 5
3.3 ARCHITECTURE 15
3.4 MODULES 16
5. CONCLUSION 30
VI
1
LIST OF FIGURES
FIGURE NO TITLE PAGE NO
3.3.1 ARCHITETURE 15
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.
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.
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.
4
CHAPTER 3
METHODOLOGY
3.1 System Requirement Specification
Python:
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.
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
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.
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.
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.
$ python
Python2.4.3(#1,Nov112010,13:34:43)
>>>
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!
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
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 −
1 GET
2 HEAD
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
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.
<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>
app=Flask(__name__)
@app.route('/success/<name>')
def success(name):
@app.route('/login',methods=['POST','GET'])
def login():
ifrequest.method=='POST':
user=request.form['nm']
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.
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']
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
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):
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:
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:
Hello, World!
Congratulations, you have written and executed your first Python program.
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.
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!")
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
15
3.4 MODULES
• Data Collection
• Data Cleaning
• Data Selection
• Data Transformation
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.
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.
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
LEVEL - 1
18
LEVEL - 2
LEVEL – 3
19
3.6 UML DIAGRAMS
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.
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
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.
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.
There are two basics of software testing: black box testing and white 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 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:
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
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
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')])
37
SCREENSHOTS:
38
39
40
PUBLICATION WITH PLAGARISM REPORT
41
42
43
44