A Java application for analyzing climate change CSV data.
Note: Fork of Model class architecture (PoC): SecresCSV - A GUI for opening/viewing, saving, printing, editing and/or refreshing multiple CSV files at a time in tabular format.
- Aims to analyze the temperature changes across 243 regions that cover approximately 197 countries of Planet Earth from 1750 to 2015
- Procured from Berkeley Earth, which is a California-based independent non-profit agency focused on land temperature data analysis for climate science
- Consists of five large datasets which have monthly average land and average ocean temperatures from 1750-2015 for 243 regions around the earth organized by state and major cities
- Dependency Management/Build Automation:
- Eclipse with Maven
- Dependencies:
- Git to manage workflow
- After every build, commit to git remote repo
- Wrapping Build with Installer:
jpackage--> wraps JAR file with installer to generate installer extension (i.e. exe/msi, dmg/pkg, deb/rpm) for platform dependence- Executable JAR file (created with Maven Shade Plugin) also used to maintain platform independence
- Reading Data:
- OpenCSV parser in
Modelclass Viewclass containsJTable; charts read fromJTable'sDefaultTableModels, not dataset files
- OpenCSV parser in
- Optimization:
- Optimizing Loading of Data
- 3.5 hr --> 10 sec --> 3 sec
- Optimizing Charts
- 20 sec --> 2 sec
- Used
HashMapto iterate once through dataset for "change in temp. bar charts" to filter through data
- Optimizing Loading of Data
- Visualization:
- JFreeChart
- Types of Visualizations:
TimeSeriesline charts- Scatter plots with varying degree regression models
- Line charts with regressions
- Various types of bar charts to illustrate temperature and change in temperature
- Thermometer Plot
- General Code:
- Follows Modified-MVC Architecture
- Model consists of CSV data and adds to
JTable'sDefaultTableModel
- Visualizations progressed similarly at different intervals of time
- Mid-Late 1700s - early 1800s --> Large uncertainty, data points scattered
- Late 1800s - 1900s --> distinctive trends with discernible increase and decrease in temperature, adherence to regression models
- Late 1900s - 2000s --> Unnatural increase in temperature, data points moving away from regression models, trends appear less distinct
- All of the above --> Recent increase is unnatural, data has been moving away from regression line with positive slope, so temperature is increasing
- Other
- Comparing linear and power regressions: global & regional temperature increasing linearly, not exponentially
- Bar graphs identify temp. & change in temp. --> all regions have increased in temp. (1912-2012) except Kyrgyzstan
- Effects: Rising temperatures, more droughts, intense hurricanes
- Fork of
Modelclass architecture (PoC): SecresCSV - A GUI for opening/viewing, editing, printing, and/or saving (beta) multiple CSV files at a time in tabular format. - Models calculated (linear & power) can be applied for future predictions - Ex. heatmap overlay from 2020-2030
- Future projects could fork and easily add new visualizations based on existing architecture (add new class that extends
AbstractGraphwith model and view methods, create instance in GraphCharts and coordinate withViewclass - Applying sorting and filtering algorithms could prove useful in future charts/maps etc.
