
Pemex Spill in the Gulf: Two Months of Opacity and What Satellites Show
First week of February. A black slick in the Gulf of Mexico. Pemex said it wasn't theirs. More than two months passed between that denial and April 17, when they finally admitted it was. Two months of strange theories, sealed data, and a hydrocarbon plume that kept growing while press conferences spoke of ghost ships.
On the day of the admission, operational questions remained unanswered. How much spilled. Where the failure point is. What the root cause was. None of that was published. An "acceptance of responsibility" without supporting data is public relations, not accountability.
The Catalog of Impossible Explanations
For eight weeks, officials rotated through different versions. First, an "unidentified ship" — the IMO number was never published, the AIS was never shown, the company was never named. Then "natural tar seeps" appeared, which do exist on the Gulf floor but emit volumes orders of magnitude smaller than what was seen on the surface. Finally, there was an attempt to turn "spill" into a semantic debate, as if changing the name would change the plume visible in any clear-sky Sentinel-2 image.
None of those hypotheses withstand a half-hour review. A tar seep does not emit pulsating waves correlated with operational pressure changes. A ghost ship does not leave a trail that always returns to the same seabed quadrant. And when you cross-reference the available layers, the origin of the slick falls less than a kilometer from specific Pemex infrastructure. But cross-referencing layers requires layers to cross, and that's the point.
Internal Data as a Political Weapon
Internally, the administration treated Pemex's information as a damage control asset. Production reports by platform, SCADA logs, submarine pipeline maintenance reports, intervention logs, valve records—all kept confidential. CONAGUA received nothing useful. Neither did SEMARNAT. Fishing cooperatives in Tabasco and Campeche saw their fishing zones closed without anyone explaining why or for how long.
This is an operational decision. When a state-owned company faces a contingency that could cost a line item on the balance sheet, the cheapest political option is to seal systems, reinterpret facts, and gain weeks. In the Gulf, each week means thousands of additional barrels in the water. Ecosystems and fishermen absorb the cost; the media agenda is absorbed elsewhere. Standard operation for entities that prioritize damage control over accountability.
What I Built
That's why I spent the last few weeks building an independent verifier. Nothing exotic. The value lies in open sources and cross-referencing them properly.
Four layers on the same spatio-temporal axis.
Satellite images. Sentinel-1 (SAR, penetrates clouds) and Sentinel-2 (optical, 10m) via Copernicus Data Space, plus NASA GIBS MODIS for broad area context with daily granularity. SAR is the standard for detecting hydrocarbons at sea; oil dampens waves and appears as a dark slick with reduced backscatter. A bit of polarization algebra on VV and VH highlights the plume; optical confirms when the sky is clear.
Slick polygons. SkyTruth Cerulean vectorizes SAR hydrocarbon detections worldwide and publishes them as OGC Features. Filtered to the incident window and Gulf quadrant, they provide detection-confidence polygons, daily dateable. This saved me from writing my own classifier and gave me usable time series from day one.
Ship telemetry. Global Fishing Watch API v3, the largest open AIS dataset available. I queried vessel presence in the Bay of Campeche bounding box (-97.5,18.0 to -91.3,21.5) for January to March. Over 760 unique vessels appeared. Then I extracted events by vessel: loitering, port visits, ship-to-ship encounters, and AIS gaps. I reconciled identities against the GFW registry to resolve IMO, flag, and operator.
Pemex infrastructure. Submarine pipeline routes and platform positions from public domain operational data. The pipeline that ends up being the protagonist, Old AK-C, has been on maps for years.
The four layers run on the same timeline, with a 125 ms tick to allow scraping the bar by the hour. When you can move the time and see all layers change at once, the story tells itself.
The numbers that emerged. Over 760 vessels in the area during the window; 24 affiliated with Pemex; 2 dark vessels with AIS off at the epicenter during peak discharge. 461 loitering events from Pemex vessels and 4,509 from the rest of the fleet. And one specific vessel that does not fit any pattern of the others.
The Evidence in Two Animations
This was the first thing that jumped out when cross-referencing the layers. The vessel Arbol Grande (IMO 9264867), a diving and submarine repair support vessel, departs on January 31 and by February 6 is anchored exactly above the Old AK-C pipeline. It remains stationary for over 200 consecutive hours while the yellow slick grows from that same point. Seven days compressed into a GIF:

The "unidentified ship" from the bulletins was identified. Name, IMO, trajectory, dates. It just wasn't published.
The second animation shows the same area with the Sentinel-1 image overlaid. It's no longer a symbolic layer; it's the actual plume seen by SAR from orbit, growing day by day over the vessel's position. On February 14, it reached its maximum extent: approximately 50 km² detected in a single orbital pass.

Together, the two animations put on the same map what Pemex has not put in any statement. The position of the Arbol Grande, the route of Old AK-C, and the origin of the SAR-detected slick converge within less than a kilometer. A submarine repair vessel, stationary for over 200 hours above a pipeline, during the exact window when the discharge began. No other vessel in the Pemex fleet showed comparable behavior in that window. On March 2, the plume reached the coast, and 39 communities in Veracruz, Tabasco, and Tamaulipas began to pay the price for something that still has no named party responsible.
Access to Environmental Data Should Not Require Permission
The technical part is not difficult. Anyone with a laptop, some Python, and patience can replicate this analysis in a week. Copernicus is free. SkyTruth Cerulean is open. Global Fishing Watch provides free access to researchers and journalists. The barrier is political. The State continues to treat narratives about things that directly affect us—water, air, coastal ecosystems, aquifers—as if they were its own assets, and citizens have been trained for decades to ask permission to look.
Article 4 states, "Every person has the right to an adequate environment for their development and well-being." There is no defensible healthy environment if the data describing it are sealed. The Escazú Agreement, which Mexico signed, demands proactive and timely access. Proactive means publishing by default, not responding to a transparency request two months later.
Meanwhile, waiting is costly. Satellites pass over the Gulf every day, and images are public. Cerulean's polygons update automatically. AIS trajectories are there for anyone who asks for them. The Mexican technical community has everything it needs to set up citizen observatories on critical infrastructure—pipelines, refineries, dams, coastal zones—and publish before the government decides if it's politically convenient to do so.
Pemex will not publish the actual volume. It will not publish the failure point, even though it already has a name, Old AK-C. And it will hardly publish the root cause without litigation compelling it. But the vessel has an IMO, the pipeline route is on maps, and the plume has been in orbit since February. What is seen from space, we can publish ourselves. The right to verify already exists; what's missing is using it without continuing to ask for permission.
What do you think? Join the conversation on our Discord and share your perspective.