President Obama will today announce plans to open huge swathes of the US coastline to oil and natural gas drilling, much of it for the first time.

The affected areas include 167 million acres (259,000 square miles) of ocean along the vast Atlantic coastline as well as eastern parts of the Gulf of Mexico and the north coast of Alaska.

The proposals, which Mr Obama is due to announce later today at Andrews Air Force Base near Washington in scheduled remarks on "energy security", are designed to reduce America's dependence on imported oil.

But The New York Times said it was far from clear whether they would achieve their more immediate political aim: winning crucial Republican support for energy and climate change legislation due to go before the Senate in the next few weeks.

RELATED LINKS
Falklands delivers poor results for Desire
Barack Obama: new sanctions on Iran in weeks
To save the planet, strike a deal with Big Oil
"While Mr. Obama has staked out middle ground on other environmental matters - supporting nuclear power, for example - the sheer breadth of the offshore drilling decision will take some of his supporters aback," the newspaper reported.

"And it is no sure thing that it will win support for a climate bill from undecided senators close to the oil industry, like Lisa Murkowski, Republican of Alaska, or Mary L Landrieu, Democrat of Louisiana."

The proposals would end a longstanding moratorium on East Coast exploration for natural resources, a move that would please oil companies but is likely to outrage environmental groups and residents of coastal areas.

The environmentally sensitive Bristol Bay in southwest Alaska, home to major commercial salmon fisheries and populations of endangered whales, would be protected under the plan - unlike drilling proposals floated by President Bush towards the end of his second term in office.

The New York Times said that drilling in the newly opened areas would not start for several years, if it takes place at all. Before then, the Interior Department will have to conduct geological and environmental studies along the Eastern Seaboard.

The first lease sale could be made as early as next year, however, in a triangle of ocean 50 miles off the coast of Virginia that had already been approved for development.

The area to be opened up in the eastern Gulf of Mexico is next to an area that already contains thousands of wells and hundreds of drilling platforms and with an estimated 3.5 billion barrels of oil and 17 trillion cubic feet of gas is considered the richest single tract open to drilling under the plan.
