Skip to content

mas-tono/Sea-Level-Predictor

Repository files navigation

Sea-Level-Predictor

certification python project from freecodecamp

  1. using Python to predict the sea level change through year 2050.

    Prediction graphic
  2. import libraries

    import library
         import pandas as pd
         import matplotlib.pyplot as plt
         from scipy.stats import linregress
         
  3. matplotlib to create scatter plot for year and sea level from data available

    scatter plot
    def draw_plot():
           # Read data from file
           df = pd.read_csv("epa-sea-level.csv")
    # Create scatter plot plt.figure(figsize=(12,6)) plt.scatter(data=df, x="Year", y="CSIRO Adjusted Sea Level")
  4. scipy.stats (linregress) to make a prediction (red line) of sea level to year 2050 based on available data

    linregress
             m = linregress(x=df["Year"], 
             y=df["CSIRO Adjusted Sea Level"])
             trend = [m.slope * i + m.intercept for i in df["Year"]]
             df["trend"] = trend
             years_extended = [i for i in range(2014, 2051)]
             trend_2050 = [m.slope * i + m.intercept for i in years_extended]
             df_2050 = pd.DataFrame({"Year":years_extended, "trend":trend_2050})
             df_gabung = pd.concat([df, df_2050], ignore_index=True)
         
    scatter plot
             lt.figure(figsize=(12,6))
             plt.scatter(data=df, 
                         x="Year", 
                         y="CSIRO Adjusted Sea Level")
             plt.plot(df_gabung["Year"], df_gabung["trend"], color="red")
         
  5. scipy.stats (linregress) to make a prediction (black line) of sea level to year 2050 based on selected available data (year 2000 up)

    linregress
             df_2000 = df[(df["Year"] >= 2000)]
             m_2000 = linregress(df_2000["Year"], df_2000["CSIRO Adjusted Sea Level"])
             df_2000_2050 = df_gabung[df_gabung["Year"] >= 2000].copy(deep=True)
             trend_2000_2050 = [m_2000.slope * i + m_2000.intercept for i in df_2000_2050["Year"]]
             df_2000_2050["trend_2000"] = trend_2000_2050            
         
    scatter plot
             plt.plot(df_2000_2050["Year"], df_2000_2050["trend_2000"], color="black")
         
  6. add labels and title

    labels & title
             plt.xlabel("Year")
             plt.ylabel("Sea Level (inches)")
             plt.title("Rise in Sea Level")            
             plt.savefig('sea_level_plot.png')
             return plt.gca()
         
  7. call via main.py

Releases

No releases published

Packages

No packages published

Languages