The removal of Marmot Dam on the Sandy River is now complete and the river has been restored. Projects are now underway to enhance the ability of the public to enjoy the river through additional conservation efforts and established public access.

{{:projects:sandy.jpg|:projects:sandy.jpgThe Sandy River gorge has the feel of a remote river canyon just half an hour from downtown Portland. The gorge walls reveal a textbook of the region's geologic history and ancient trees still line the river. Organizations like The Nature Conservancy and Western Rivers Conservancy have been important community partners in protecting the lands along this river. It was a broad coalition of organizations including American Whitewater that worked with local utility Portland General Electric on a plan to remove Marmot Dam. This dam diverted flows from the river and blocked salmon migration for many decades. American Rivers, Trout Unlimited, and Water Watch of Oregon were key partners helping us work towards our goal of restoring this river.

This Sandy River is a unique treasure for the greater Portland area, and following removal of Marmot Dam in summer 2007 it was restored as one of the most intact river ecosystems in close proximity a major metropolitan area. The agreement to remove the dam and decommission the hydropower project was signed on October 24th, 2002 by Oregon Governor John Kitzhaber who supported the dam removal from the beginning, 8 federal and state agencies and 13 organizations. Implementation of the agreement has provided upstream passage for threatened Chinook Salmon, Steelhead and Bull Trout and preserved 5,000 acres of land along 15 miles of river for wildlife and public recreation. The removal of Marmot Dam also extended the boating season of the class III-IV Sandy Gorge by restoring the 400-600 cfs that was diverted for power generation. It also makes a 12.5 mile trip possible all the way from Marmot Bridge to Revenue Bridge without having to portage around the dam.

Key Documents Filed with the Federal Energy Regulatory Commission:

Join AW and support river stewardship nationwide!
7.4.3PHP Version380msRequest Duration6MBMemory UsageGET content/{url}Route
    • Booting (40.49ms)
    • Application (340ms)
    • 1 x Application (89.35%)
      340ms
      1 x Booting (10.64%)
      40.49ms
      14 templates were rendered
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • app::layout.gadget (resources/views/layout/gadget.blade.php)2blade
        Params
        0
        contents
        1
        formRenderService
      • layout.columnstyle.one (resources/views/layout/columnstyle/one.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.columnstyle.componentstack (resources/views/layout/columnstyle/componentstack.blade.php)9blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        stack
        8
        component
      • layout.main (resources/views/layout/main.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout._headers (resources/views/layout/_headers.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.header (resources/views/layout/header.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout._scripts (resources/views/layout/_scripts.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.navigation (resources/views/layout/navigation.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
      • includes.alert.membership (resources/views/includes/alert/membership.blade.php)17blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
        8
        searchurl
        9
        loginurl
        10
        logouturl
        11
        __currentLoopData
        12
        child
        13
        loop
        14
        otherchild
        15
        shouldNotifyUser
        16
        user
      • navigation.menu.static (resources/views/navigation/menu/static.blade.php)15blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
        8
        searchurl
        9
        loginurl
        10
        logouturl
        11
        __currentLoopData
        12
        child
        13
        loop
        14
        otherchild
      • includes.footer (resources/views/includes/footer.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
      • layout.pagemap (resources/views/layout/pagemap.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      uri
      GET content/{url}
      middleware
      web
      controller
      App\Http\Controllers\Wh2oController@content
      namespace
      App\Http\Controllers
      where
      as
      generated::Os9R4mqMKRF5ktoI
      file
      app/Http/Controllers/Wh2oController.php:34-68
      12 statements were executed, 4 of which were duplicated, 8 unique9.56ms
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        2.73ms/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        2.38ms/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        430μs/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        360μs/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from security where domain in ('JournalGadget') and area is null;
        216μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security_defaults where domain in ('UserGadget');
        174μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
      • select * from security_defaults where domain in ('MembershipGadget');
        142μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
      • select * from security_defaults where domain in ('StreamTeamGadget');
        183μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
      • select * from security_defaults where domain in ('MiscEditGadget');
        890μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
      • select * from security_defaults where domain in ('StoreGadget');
        157μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
      • select * from security_defaults where domain in ('WikiGadget');
        1.77ms/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
      • select * from security_defaults where domain in ('BugTrackerGadget');
        126μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
          _token
          RoPtx8VTYHUACdgfkNfZlY4dxtmNShdw7b3Rq6aG
          page
          array:1 [ "count" => -1 ]
          PHPDEBUGBAR_STACK_DATA
          []
          path_info
          /content/Wiki/projects:51
          status_code
          200
          
          status_text
          OK
          format
          html
          content_type
          text/html; charset=UTF-8
          request_query
          []
          
          request_request
          []
          
          request_headers
          0 of 0
          array:15 [ "priority" => array:1 [ 0 => "u=0, i" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "host" => array:1 [ 0 => "beta.americanwhitewater.org" ] ]
          request_server
          0 of 0
          array:42 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_PRIORITY" => "u=0, i" "HTTP_ACCEPT_ENCODING" => "gzip, deflate, br, zstd" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_HOST" => "beta.americanwhitewater.org" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "beta.americanwhitewater.org" "SERVER_PORT" => "443" "SERVER_ADDR" => "172.31.18.125" "REMOTE_PORT" => "19415" "REMOTE_ADDR" => "18.224.64.19" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => true "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/opt/americanwhitewater.org/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/content/Wiki/projects:51" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "PHP_VALUE" => "post_max_size=20M" "SCRIPT_FILENAME" => "/opt/americanwhitewater.org/public/index.php" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1743603684.617 "REQUEST_TIME" => 1743603684 ]
          request_cookies
          []
          
          response_headers
          0 of 0
          array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 02 Apr 2025 14:21:24 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkdEZHhBNlRsbjJWRTQvWUkzNGF1NkE9PSIsInZhbHVlIjoiZjVGaGVtMHJjSGg3aFptZ3lPSDIzTGNYckgxcnF6UzNXWTA5T0RPU2JVbXA5ZCtrQS9BZVZoL245QVB4YkNKN0JkOEhUaFNXem50VGRaM05RZ0JUWTRRMDJIeGdBcDFiOFVmczNReENiTWlPODBMQTNQR1VVTXVhNytLSmJ3NkgiLCJtYWMiOiIyMGJmZTVlMTNmMGRkOTEyZTkzYjY1MTc1YTA1MTU5NGM0NDg5NjQxZTNjZTU5Mzk1ZDM0NjM0MWIyYjI5NTFkIn0%3D; expires=Wed, 02-Apr-2025 16:21:24 GMT; Max-Age=7200; path=/XSRF-TOKEN=eyJpdiI6IkdEZHhBNlRsbjJWRTQvWUkzNGF1NkE9PSIsInZhbHVlIjoiZjVGaGVtMHJjSGg3aFptZ3lPSDIzTGNYckgxcnF6UzNXWTA5T0RPU2JVbXA5ZCtrQS9BZVZoL245QVB4YkNKN0JkOEhUa" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IlNBZFBQZ2x2b056OEVWTHRGZldJa2c9PSIsInZhbHVlIjoidWdRbHRXeHVBSExuZ090NWE4RnA0YklWN3M3bWZ2T0VnWjNDMGtZVzJ6bTkzMFJ5ZUZQNEtmQ2pHSzJkUWhVKyIsIm1hYyI6IjZjYjlkMjg3N2FlNmUwNTExOGE4ZDE2OThmNzAwMDMwNTdiNWU1OTcxYzcyZGZlOGRlOGVjM2VlMTc4OTk5OGIifQ%3D%3D; expires=Wed, 02-Apr-2025 14:20:24 GMT; Max-Age=0; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IlNBZFBQZ2x2b056OEVWTHRGZldJa2c9PSIsInZhbHVlIjoidWdRbHRXeHVBSExuZ090NWE4RnA0YklWN3M3bWZ2T0VnWjNDMGtZVzJ6bTkzMFJ5ZUZQN" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkdEZHhBNlRsbjJWRTQvWUkzNGF1NkE9PSIsInZhbHVlIjoiZjVGaGVtMHJjSGg3aFptZ3lPSDIzTGNYckgxcnF6UzNXWTA5T0RPU2JVbXA5ZCtrQS9BZVZoL245QVB4YkNKN0JkOEhUaFNXem50VGRaM05RZ0JUWTRRMDJIeGdBcDFiOFVmczNReENiTWlPODBMQTNQR1VVTXVhNytLSmJ3NkgiLCJtYWMiOiIyMGJmZTVlMTNmMGRkOTEyZTkzYjY1MTc1YTA1MTU5NGM0NDg5NjQxZTNjZTU5Mzk1ZDM0NjM0MWIyYjI5NTFkIn0%3D; expires=Wed, 02-Apr-2025 16:21:24 GMT; path=/XSRF-TOKEN=eyJpdiI6IkdEZHhBNlRsbjJWRTQvWUkzNGF1NkE9PSIsInZhbHVlIjoiZjVGaGVtMHJjSGg3aFptZ3lPSDIzTGNYckgxcnF6UzNXWTA5T0RPU2JVbXA5ZCtrQS9BZVZoL245QVB4YkNKN0JkOEhUa" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IlNBZFBQZ2x2b056OEVWTHRGZldJa2c9PSIsInZhbHVlIjoidWdRbHRXeHVBSExuZ090NWE4RnA0YklWN3M3bWZ2T0VnWjNDMGtZVzJ6bTkzMFJ5ZUZQNEtmQ2pHSzJkUWhVKyIsIm1hYyI6IjZjYjlkMjg3N2FlNmUwNTExOGE4ZDE2OThmNzAwMDMwNTdiNWU1OTcxYzcyZGZlOGRlOGVjM2VlMTc4OTk5OGIifQ%3D%3D; expires=Wed, 02-Apr-2025 14:20:24 GMT; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IlNBZFBQZ2x2b056OEVWTHRGZldJa2c9PSIsInZhbHVlIjoidWdRbHRXeHVBSExuZ090NWE4RnA0YklWN3M3bWZ2T0VnWjNDMGtZVzJ6bTkzMFJ5ZUZQN" ] ]
          session_attributes
          0 of 0
          array:3 [ "_token" => "RoPtx8VTYHUACdgfkNfZlY4dxtmNShdw7b3Rq6aG" "page" => array:1 [ "count" => -1 ] "PHPDEBUGBAR_STACK_DATA" => [] ]