subject

Now it’s time to generate some weather! Imagine you are a farmer. Does knowing the number of wet or dry days tell the whole story? Would the pattern
be important? If so, what pattern would you like to see? How would you measure this pattern?

The transition probabilities that we have used for Norman, OK are based on historical data, and you might
use them to get a sense for the likelihood certain weather phenomena in the near future. For instance, a
farmer might want to run many, many simulations to get an idea of the likelihood of going 20 or more days
without rain, and the results might influence the crops that he or she plants.

Just as we can base the transition probabilities on historical data, we can also base them on future predictions.
For instance, the National Center for Atmospheric Research (NCAR) simulates weather as it responds to assumptions
about how various “forcings” (e. g, greenhouse gasses) will evolve in the future. Typically, these models couple
an atmospheric model with an ocean model, but more recent versions, the so-called Earth system models, incorporate
more components including land use, sea and land ice, etc. The models can be used to predict future precipitation
patterns and transition probabilities that are based on these forecasts, rather than past data.

The weather generator methods you will be writing for this assignment will:

predict future precipitation pattern for one month: oneMonthGenerator
find the number of wet or dry days in a given month’s forecast: numberOfWetDryDays
find the longest wet or dry spell in a given month’s forecast:

Future transition probability table as a 2D array

The oneMonthGenerator method receives as arguments the transition probability tables (dry to wet, and wet to wet) as 2D arrays.
Each table row corresponds to a location (longitude, latitude) in the USA and contains the transition probabilities
for each month of the year.

Longitude Latitude January February March April May June July August September October November December
-97.58 26.02 0.76 0.75 0.77 0.74 0.80 0.86 0.94 0.97 0.89 0.77 0.74 0.77

Following are the methods to be completed in WeatherGenerator. java:

public class WeatherGenerator {

/* Given a location (longitude, latitude) in the USA and a month of the year, the method
* returns the forecast for the month based on the drywet and wetwet transition
* probabilities tables.
*
* month will be a value between 2 and 13: 2 corresponds to January, 3 corresponds to February
* and so on. These are the column indexes of each month in the transition probabilities tables.
*
* The first day of the month has a 50% chance to be a wet day, 0-0.49 (wet), 0.50-0.99 (dry)
*
* Use StdRandom. uniform() to generate a real number uniformly in [0,1)
*/
int[] oneMonthGenerator(double longitute, double latitude, int month, double[][] drywet, double[][] wetwet)

// Returns the longest number of consecutive mode (WET or DRY) days in forecast.
int numberOfWetDryDays (int[] forecast, int mode)

/*
* Analyzes the forecast array and returns the longest number of
* consecutive mode (which can be WET or DRY) days in forecast.
*/
int (int[] forecast, int mode)
}

Use the main method as a driver to test your methods. To generate the weather for location at longitude -98.76 and latitude 26.70 for the month of February do:

java WeatherGenerator111 -98.76 26.70 3

public static void main (String[] args) {

int numberOfRows = 4001; // Total number of locations
int numberOfColumns = 14; // Total number of 14 columns in file
// File format: longitude, latitude, 12 months of transition probabilities

// Allocate and populate arrays that hold the transition probabilities
double[][] drywet = new double[numberOfRows][numberOfColumn s];
double[][] wetwet = new double[numberOfRows][numberOfColumn s];
(drywet, wetwet, numberOfRows);

/*** WRITE YOUR CODE BELLOW THIS LINE. DO NOT erase any of the lines above. ***/

// Read command line inputs
double longitute = Double. parseDouble(args[0]);
double latitude = Double. parseDouble(args[1]);
int month = Integer. parseInt(args[2]);

int[] forecast = oneMonthGenerator(longitute, latitude, month, drywet, wetwet);
int drySpell = lengthOfLongestSpell(forecast, DRY);
int wetSpell = lengthOfLongestSpell(forecast, WET);

StdOut. println("There are " + forecast. length + " days in the forecast for month " + month);
StdOut. println(drySpell + " days of dry spell.");

for ( int i = 0; i < forecast. length; i++ ) {

// This is the ternary operator. (conditional) ? executed if true : executed if false
String weather = (forecast[i] == WET) ? "Wet" : "Dry";
StdOut. println("Day " + (i+1) + " is forecasted to be " + weather);
}
}

ansver
Answers: 1

Another question on Computers and Technology

question
Computers and Technology, 22.06.2019 04:30
What kind of software users of all skill levels create web pages that include graphics, video, audio, animation, and other special effects? website authoring website software website publishing website editing
Answers: 1
question
Computers and Technology, 22.06.2019 20:00
The blank button automatically displays next to the data when you select a range of numeric data which is an available option for creating a chart
Answers: 3
question
Computers and Technology, 22.06.2019 21:30
Elements such as fonts colors visual structure graphics and the interface of a web page should complement each other to ensure blank
Answers: 3
question
Computers and Technology, 23.06.2019 02:00
Which demographic challenge is europe currently experiencing? a. an aging and decreasing population b. a baby boomc. an unequal distribution between males and females d. a large group of teenagers moving through the school system(i chose a but i'm unsure)
Answers: 1
You know the right answer?
Now it’s time to generate some weather! Imagine you are a farmer. Does knowing the number of wet or...
Questions
question
Mathematics, 12.09.2019 01:30
question
Mathematics, 12.09.2019 01:30
question
Mathematics, 12.09.2019 01:30
Questions on the website: 13722363