Skip to content

Open In Colab

Recommended RV Parks Dataset

Reference: https://www.greatalaskanholidays.com/trip-planning/recommended-campgrounds/

Setup

!pip install polyline geocoder -q
import pandas as pd

Scrape Data

df_all = pd.read_html('https://www.greatalaskanholidays.com/trip-planning/recommended-campgrounds/')
len(df_all)
3

DataFrames

  1. Privately Owned Campgrounds
  2. State of Alaska Campgrounds
df = df_all[0].copy()
# df.head(5)
df.columns = ['CampgroundName', 'Sites', 'Website', 'BusinessAddress', 'Email']
df = df.fillna('')
df
CampgroundName Sites Website BusinessAddress Email
0 Alaskan Angler RV Resort 73 https://alaskabestrvpark.com/ 15640 Kingsley Rd, Ninilchik, AK 99639 bakersrvresort@yahoo.com
1 Anchorage Ship Creek RV Park 147 150 N. Ingra St, Anchorage, AK 99501 dsmith@bestofalaskatravel.com
2 Bayside RV Park 117 https://www.baysidervcabin.com/ 230 E. Egan St, Valdez, AK 99686 Bayside1@cvinternet.net
3 Bear Creek RV Park 40 http://bearcreekrv.com/ 33508 Lincoln Ave, Seward, AK 99664 bearcreekrvpk@gci.net
4 Big Bear RV Park 59 http://www.bigbearrv.net 2010 Church St, Palmer, AK 99645 bigbear@mtaonline.net
5 Cantwell RV Park Inc. 80 https://cantwellrvpark.wordpress.com/ PO Box 210 Cantwell, AK 99729 cantwellrvpark@ak.net, cantwellrvpark@gmail.com
6 Chicken Gold Camp & Outpost 70 http://chickengold.com 1/4 mile Airport Rd, Chicken Alaska 99732 chickenrvpark@gmail.com
7 Clearwater Ranch Cabins & RV Park 12 http://clearwaterlodgeak.com 7028 Remington Road, Delta Junction, AK 99737 ewingk@wildak.net
8 Deep Creek View Campground 45 http://smartcharters.com 16215 Shy Maiden Circle, Ninilchik smartcharters@alaskan.com
9 Denali Grizzly Bear Resort 24 http://denaligrizzlybear.com Mile 231.1 George Parks Hwy,Denali, AK scott@denaligrizzlybear.com
10 Denali Rainbow Village & RV Park 58 http://denalirv.com Mile 238.6 Parks Highway denalirainbow@mtaonline.net, denalirv@yahoo.com
11 Denali RV Park & Motel 80 http://denalirvparkandmotel.com Mile 245.1 Parks Highway stay@denalirvparkandmotel.com
12 Diamond M Ranch Resort 93 http://diamondmranch.com 48500 Diamond M Ranch Road ronna@diamondmranch.com, office@diamondmranch...
13 Driftwood Inn & RV Park 22 https://thedriftwoodinn.com/ 135 West Bunnell, Homer, AK 99603 driftwoodinn@alaskan.com, adriennewalli@hotma...
14 Eagles Rest RV Park & Cabins 244 http://eaglesrestrv.com Eagles Rest RV Park & Cabins,Valdez, AK laurasaxe@yahoo.com
15 Exit Glacier RV Park 60 31702 Herman Leirer Rd, Seward, AK sewardrvpark@gmail.com
16 Fox Run Lodge & RV Park 38 http://foxruncamp.com/ 4466 S. Glenn Highway, Palmer, AK 99645 walkingoutside@mtaonline.net
17 Golden Nugget RV Park 212 http://www.goldennuggetrvpark.com 4100 DeBarr Road, Anchorage, AK 99508 gnugget@gci.net
18 Grand View RV Park 28 http://grandviewrv.com Milepost 109.7 Glenn Highway info@grandviewrv.com
19 Grizzly Lake Campground 22 Mile 53 Tok Cutoff Gakona, AK 99586 grizzlylake1@cvinternet.net
20 Gwin’s Lodge Historic Roadhouse & Campground 24 http://gwinslodge.com 14865 Sterling Highway, Milepost 52 reservations@gwinslodge.com
21 Happy Valley RV Campground 7 www.rv-alaska.com 21590 Sterling Highway, Ninilchik, AK 99639 happyvalleyrv@gmail.com
22 Heritage RV Park 107 https://alaskanheritagervpark.com/ 3550 Homer Spit Road Homer, Alaska 99603 heritagervpark@alaska.net
23 Homer BaycrestKOA RV Park 45 http://www.baycrestrvpark.com 3425 Sterling Highway Homer, AK 99603 homerunoil@alaska.net
24 Homer Spit Campground 119 https://www.alaskacampgrounds.net/ 4535 Homer Spit Road Homer, Alaska 99603 baycrestrvpark@gmail.com
25 Ice Art RV Park & Campground 90 https://www.iceartpark.com/ 3570 Phillips Field Road, Fairbanks, AK 99709 ice@gci.net
26 Kenai RV 24 https://kenairv.net/ 39864 Kalifornsky Beach Road, Kenai, AK 99611 grandma9cindy@gmail.com
27 Klondike RV Park & Cottages 35 http://www.klondikervpark.com 48665 Funny River Road, Soldotna, AK manager@klondikervpark.com
28 Kyllonen’s RV Park 24 http://www.kyllonensrvpark.com 74160 Anchor Point Rd, Anchor Point, AK 99556 info@kyllonensrvpark.com
29 Lu-Lu Belle Glacier Wildlife Cruises RV Park 7 http://www.lulubelletours.com 240 Kokuk Drive, Valdez, AK 99686 info@lulubelletours.com
30 Midnight Sun RV Park 44 248.5 Park Hwy, Healy, AK 999743 nikki@trivalleygas.com
31 Montana Creek Campground 66 http://montanacreekcampground.com Mile 96.5 Parks Highway, Willow, Alaska montanacreek@mtaonline.net
32 Northern Nights Campground & RV Park 32 http://northernnightscampground.com 188 Glenn Hwy, Glennallen, AK 99588 tazlinamarc@yahoo.com
33 Oceanside RV Park 23 http://oceansiderv.com 14 Front Street, Haines, Alaska greatview@oceansiderv.com
34 Ocean Shores RV Park 85 http://homeralaskarvpark.com 455 Sterling Highway, Homer, AK 99603 mbarling1965@gmail.com
35 Ranch HouseRV Resort 38 http://alaskaranchhouselodge.com Mile 173 PO Box 113 Glennallen, AK 99588 ranchhouselodge@gmail.com
36 Riverview RV Park 160 http://www.riverviewrvpark.net 1316 Badger Rd, North Pole, AK 99705 riverview@gci.net
37 Seagull’s Roost Campground LLC 6 15136 Grouse Creek Road, Seward, AK 99664 seagullsroostcampgroundllc@gmail.com
38 Slide Mountain Cabins & RV Park 24 http://www.slidemountaincabins.net Mile 135 Glenn Hwy, Glennallen, AK 99588 slidemountaincabins@gmail.com
39 Sourdough Campground & Cafe 75 http://sourdoughcampground.com 1 Prospector Way, Tok, AK 99780 sourdoughcampground@outlook.com
40 Glacier Nalu Campground 32 https://glaciernalu.com/ 10200 Mendenhall Loop Road, Juneau, AK 99801 glaciernalu@gmail.com
41 Talkeetna Camper Park 33 http://talkeetnacamper.com 22763 S. Talkeetna Spur Rd, Talkeetna, AK 99676 camp@talkeetnacamper.com
42 Tok RV Village 162 http://tokrv.net Mile 1313.4 Alaska Highway camp@tokrv.net
43 Tolsona Wilderness Campground 75 http://tolsonacampground.com Mile 173 Glenn Highway, Glennallen, AK 99588 camp@tolsonacampground.com
44 Valdez KOA- Bear Creek Cabins & RV Park 68 http://bearcreekcabinsrvpark.com 3181 Richardson Hwy, Valdez, AK 99686 leickman@hotmail.com
import logging
import requests
import json
import polyline
import folium
from folium.plugins import MeasureControl
import geocoder

from functools import lru_cache

logger = logging.getLogger(__name__)
DEBUG = True

@lru_cache(maxsize=None)
def geocode(location):
    return _geocode(location)

def _geocode(location):
    import geocoder
    # g = geocoder.osm(location)
    g = geocoder.arcgis(location)
    return g.latlng

@lru_cache(maxsize=None)
def get_route(olat, olng, dlat, dlng):
    response = _get_route(olat, olng, dlat, dlng)
    return response

def _get_route(olat, olng, dlat, dlng):
    url = f'http://router.project-osrm.org/route/v1/driving/{olng},{olat};{dlng},{dlat}?alternatives=false&steps=false'
    # logger.debug(url)
    response = None

    try:
        logger.debug(f'====== OSRM: {url}')
        response = requests.get(url, verify=False)
    except Exception as ex:
        raise

    # logger.debug(response.text)
    if response and response.text:
        response_dict = json.loads(response.text)
        #possible = pd.DataFrame([{'Distance': (route['distance'] / 1000) *  0.621371 , route['weight_name']: route['weight']} for route in response_dict['routes']])
        return response_dict
    else:
        return None

def get_routing_map(origin, destination, zoom=5):
    orig_latlng = geocode(origin)
    dest_latlng = geocode(destination)

    resp = get_route(orig_latlng[0], orig_latlng[1], dest_latlng[0], dest_latlng[1])

    decoded = polyline.decode(resp["routes"][0]['geometry'])
    distance = resp["routes"][0]['distance'] * 0.000621371
    duration = resp["routes"][0]['duration'] / 60

    map2 = folium.Map(location=(orig_latlng[0], orig_latlng[1]), zoom_start=zoom,
                                    control_scale=True)
    # map2.add_child(MeasureControl(
    #     primary_length_unit='miles',
    #     secondary_length_unit='meters',
    #     primary_area_unit='acres',
    #     secondary_area_unit='sqmeters')
    # )

    folium.PolyLine(locations=decoded, color="blue").add_to(map2)

    print(f"{duration} minutes")
    print(f"{distance} miles")

    return map2

Geocode Private Campgrounds

# geocode('15640 Kingsley Rd, Ninilchik, AK 99639   ')
applied_df = df.apply(lambda row: geocode(row.BusinessAddress), axis='columns', result_type='expand')
df = pd.concat([df, applied_df], axis='columns')

df = df.rename(columns={0:'lat', 1: 'lng'})
# df
df[pd.isnull(df.lat)]
CampgroundName Sites Website BusinessAddress Email lat lng
18 Grand View RV Park 28 http://grandviewrv.com Milepost 109.7 Glenn Highway info@grandviewrv.com NaN NaN
42 Tok RV Village 162 http://tokrv.net Mile 1313.4 Alaska Highway camp@tokrv.net NaN NaN
# 61.84590432308156, -147.62491071636222
df.loc[df.CampgroundName == 'Grand  View RV Park', ['lat', 'lng']] = [61.84590432308156, -147.62491071636222]

# 63.33500236865673, -142.9639913435805
df.loc[df.CampgroundName == 'Tok  RV Village', ['lat', 'lng']] = [63.33500236865673, -142.9639913435805]
df[pd.isnull(df.lat)]
CampgroundName Sites Website BusinessAddress Email lat lng
anchorage = geocode('Anchorage, Alaska, USA')
# anchorage
def format_popup(row):
    format_str=f"""
    <b>{row['CampgroundName']}</b><br>
    {row['BusinessAddress']}<br>
    <a herf="{row['Website']}">{row['Website']}</a><br>
    """
    return format_str
map2 = folium.Map(location=(anchorage[0], anchorage[1]), zoom_start=5, control_scale=True)

# add marker one by one on the map
for idx, row in df.iterrows():
    if not pd.isnull(row['lat']) and not pd.isnull(row['lng']):
        folium.Marker(
            location=[row['lat'], row['lng']],
            popup=format_popup(row),
        ).add_to(map2)

Map of Privately Owned Campgrounds

map2
Make this Notebook Trusted to load map: File -> Trust Notebook

State of Alaska Campgrounds

df_1 = df_all[1]
df_1 = df_1[~(df_1['Campground'] == df_1['Winter Open'])].reset_index(drop=True)
df_1 = df_1.fillna('')
df_1.head(5)
Campground RV Fee # Sites Picnic Sites Toilets Water Trails Fishing Nearest Community Location Winter Open
0 Bird Creek Y $20 27 Y H Y Y Y Girdwood Mi. 101.2 Seward Hwy
1 Bird Creek Overflow Y $20 20 Y H H H Y Girdwood
2 Eagle River* $25 57 Y H H N Y Eagle River Mi. 12.6 Glenn Hwy
3 Eklutna $15 58 H H H Y Y Eklutna Mi. 26.5 Glenn Hwy
4 Big Delta SHP Y $20 25 Y H H Y N Delta Junction Mi. 274.5 Richardson Hwy
df_1['Address'] = df_1['Campground'] + ', ' + df_1['Location'] + ', ' + df_1['Nearest Community'] + ', AK, USA'
# df_1.columns
df = df_1.copy()
applied_df = df.apply(lambda row: geocode(row.Address), axis='columns', result_type='expand')
df = pd.concat([df, applied_df], axis='columns')

df = df.rename(columns={0:'lat', 1: 'lng'})
df
Campground RV Fee # Sites Picnic Sites Toilets Water Trails Fishing Nearest Community Location Winter Open Address lat lng
0 Bird Creek Y $20 27 Y H Y Y Y Girdwood Mi. 101.2 Seward Hwy Bird Creek, Mi. 101.2 Seward Hwy, Girdwood, AK... 60.933641 -149.156054
1 Bird Creek Overflow Y $20 20 Y H H H Y Girdwood Bird Creek Overflow, , Girdwood, AK, USA 60.941040 -149.172700
2 Eagle River* $25 57 Y H H N Y Eagle River Mi. 12.6 Glenn Hwy Eagle River*, Mi. 12.6 Glenn Hwy, Eagle River,... 61.316480 -149.574140
3 Eklutna $15 58 H H H Y Y Eklutna Mi. 26.5 Glenn Hwy Eklutna, Mi. 26.5 Glenn Hwy, Eklutna, AK, USA 61.455170 -149.366020
4 Big Delta SHP Y $20 25 Y H H Y N Delta Junction Mi. 274.5 Richardson Hwy Big Delta SHP, Mi. 274.5 Richardson Hwy, Delta... 63.793616 -145.750973
5 Birch Lake SRS Y $15 19 Y H Y N Y Fairbanks Mi. 305.5 Richardson Hwy Birch Lake SRS, Mi. 305.5 Richardson Hwy, Fair... 64.820500 -147.700540
6 Red Squirrel Y $15 5 H H Y N Y Fairbanks Mi. 43 Chena Hot Springs Rd Red Squirrel, Mi. 43 Chena Hot Springs Rd, Fai... 64.888235 -147.622911
7 Rosehip Y $15 37 Y H Y Y Y Fairbanks Mi. 27 Chena Hot Springs Rd Rosehip, Mi. 27 Chena Hot Springs Rd, Fairbank... 64.888235 -147.622911
8 Granite Tors Y $15 24 H H Y Y Y Fairbanks Mi. 39 Chena Hot Springs Rd Granite Tors, Mi. 39 Chena Hot Springs Rd, Fai... 64.888235 -147.622911
9 Chena River SRS** Y $15/$30 61 H H H Y Y Fairbanks 3530 Geraghty Ave Chena River SRS**, 3530 Geraghty Ave, Fairbank... 64.837757 -147.806355
10 Clearwater SRS Y $15 16 Y H Y N Y Delta Junction Remington Rd Clearwater SRS, Remington Rd, Delta Junction, ... 64.051740 -145.428960
11 Delta SRS Y $15 24 Y H H Y N Delta Junction Mi. 267 Richardson Hwy Delta SRS, Mi. 267 Richardson Hwy, Delta Junct... 64.053090 -145.736720
12 Eagle Trail SRS Y $20 35 Y H Y Y N Tok Mi. 109.5 Tok Cutoff Eagle Trail SRS, Mi. 109.5 Tok Cutoff, Tok, AK... 63.284304 -143.170090
13 Harding Lake SRA Y $15 81 H H H Y Y Fairbanks Mi. 321.4 Richardson Hwy Harding Lake SRA, Mi. 321.4 Richardson Hwy, Fa... 64.820500 -147.700540
14 Moon Lake SRS Y $20 17 Y H Y N N Tok Mi. 1,332 Alaska Hwy. Moon Lake SRS, Mi. 1,332 Alaska Hwy., Tok, AK,... 63.125472 -142.059442
15 Lost Lake Y $15 11 Y H Y Y Y Delta Junction Mi. 277.8 Richardson Hwy Lost Lake, Mi. 277.8 Richardson Hwy, Delta Jun... 63.793616 -145.750973
16 Quartz Lake Campground Y $15 80 Y H Y Y Y Delta Junction Mi. 277.8 Richardson Hwy Quartz Lake Campground, Mi. 277.8 Richardson H... 63.793616 -145.750973
17 Salcha River SRS Y $15 6 Y H Y N Y Fairbanks Mi. 323 Richardson Hwy Salcha River SRS, Mi. 323 Richardson Hwy, Fair... 64.466050 -146.922480
18 Tok River SRS Y $20 24 Y H Y Y N Tok Mile 1,309 Alaska Hwy Tok River SRS, Mile 1,309 Alaska Hwy, Tok, AK,... 63.125472 -142.059442
19 Whitefish Y $15 25 Y H Y N Y Fairbanks Mi. 11 Elliot Hwy Whitefish, Mi. 11 Elliot Hwy, Fairbanks, AK, USA 64.845250 -147.722100
20 Olnes Pond Y $15 15 Y H Y Y Y Fairbanks Mi. 10.5 Elliot Hwy Olnes Pond, Mi. 10.5 Elliot Hwy, Fairbanks, AK... 64.845250 -147.722100
21 Clam Gulch SRA Y $15 116 Y H H N Y Soldotna Mi. 117 Sterling Hwy Clam Gulch SRA, Mi. 117 Sterling Hwy, Soldotna... 60.466670 -151.090603
22 Crooked Creek SRS Y $15 79 Y H H H Y Kasilof Coho Loop Crooked Creek SRS, Coho Loop, Kasilof, AK, USA 60.270076 -151.270761
23 Deep Creek SRA Y Ninilchik Mi. 138 Sterling Hwy Y Deep Creek SRA, Mi. 138 Sterling Hwy, Ninilchi... 60.040534 -151.675684
24 Johnson Lake SRA Y $15 50 Y H H N Y Kasilof Mi. 110 Sterling Hwy Y Johnson Lake SRA, Mi. 110 Sterling Hwy, Kasilo... 60.321473 -151.259947
25 Ninilchik SRA Y Ninilchik SRA, , , AK, USA 60.052400 -151.667900
26 K’esugi Ken** Y $20/$30 42 Y H Y Y Trapper Creek Mi. 135.4 Parks Hwy K’esugi Ken**, Mi. 135.4 Parks Hwy, Trapper Cr... 62.318930 -150.235580
27 Byers Lake Y $20 73 Y H Y Y Y Trapper Creek Mi. 147 Parks Hwy Byers Lake, Mi. 147 Parks Hwy, Trapper Creek, ... 62.744630 -150.135220
28 Denali View North Y $15 23 H H Y H Trapper Creek Mi. 162.7 Parks Hwy Denali View North, Mi. 162.7 Parks Hwy, Trappe... 62.318930 -150.235580
29 Denali View South Y $15 10 Y H Y Y Trapper Creek Mi. 134.8 Parks Hwy Denali View South, Mi. 134.8 Parks Hwy, Trappe... 62.318930 -150.235580
30 Lower Troublesome Creek Y $10 12 Y Y Y Y Y Trapper Creek Mi. 137.2 Parks Hwy Y Lower Troublesome Creek, Mi. 137.2 Parks Hwy, ... 62.318930 -150.235580
31 Hatcher Pass Y Hatcher Pass, , , AK, USA 61.769720 -149.308890
32 South Rolly Lake Y $20 97 Y H Y Y Y Willow Mi. 6.5 Nancy Lake Pkwy. South Rolly Lake, Mi. 6.5 Nancy Lake Pkwy., Wi... 61.750860 -150.045090
33 Willow Creek Y $15 131 H Y Y Y Y Willow Mi. 70.8 Parks Hwy. Willow Creek, Mi. 70.8 Parks Hwy., Willow, AK,... 61.750860 -150.045090
34 Chilkat SP Y $15 35 Y H Y Y Y Haines Mi. 7 Mud Bay Rd. Chilkat SP, Mi. 7 Mud Bay Rd., Haines, AK, USA 59.228457 -135.445365
35 Chilkoot Lake SRS Y $15 32 Y H Y Y Haines Mi. 10 Lutak Rd Chilkoot Lake SRS, Mi. 10 Lutak Rd, Haines, AK... 59.283838 -135.475300
36 Eagle Beach SRA Y $15 16 H H H H Y Juneau Mi. 29 Glacier Hwy. Y Eagle Beach SRA, Mi. 29 Glacier Hwy., Juneau, ... 58.314719 -134.445896
37 Settler’s Cove SRA Y $15 13 H H H H Y Ketchikan Mi. 18 N. Tongass Hwy. Settler’s Cove SRA, Mi. 18 N. Tongass Hwy., Ke... 55.464094 -131.805873
# df[pd.isnull(df.lat)]
def format_popup(row):
    format_str=f"""
    <b>{row['Campground']}</b><br>
    {row['Address']}<br>
    """
    return format_str
anchorage = geocode('Anchorage, Alaska, USA')
map2 = folium.Map(location=(anchorage[0], anchorage[1]), zoom_start=5, control_scale=True)
# add marker one by one on the map
for idx, row in df.iterrows():
    if not pd.isnull(row['lat']) and not pd.isnull(row['lng']):
        folium.Marker(
            location=[row['lat'], row['lng']],
            popup=format_popup(row),
        ).add_to(map2)

Map of State of Alaska Campgrounds

map2
Make this Notebook Trusted to load map: File -> Trust Notebook