tunned-geobr 1.0.7__py3-none-any.whl → 1.0.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tunned_geobr/list_geobr.py +1 -0
- tunned_geobr/read_production_fields.py +86 -0
- {tunned_geobr-1.0.7.dist-info → tunned_geobr-1.0.8.dist-info}/METADATA +1 -1
- {tunned_geobr-1.0.7.dist-info → tunned_geobr-1.0.8.dist-info}/RECORD +7 -6
- {tunned_geobr-1.0.7.dist-info → tunned_geobr-1.0.8.dist-info}/WHEEL +0 -0
- {tunned_geobr-1.0.7.dist-info → tunned_geobr-1.0.8.dist-info}/entry_points.txt +0 -0
- {tunned_geobr-1.0.7.dist-info → tunned_geobr-1.0.8.dist-info}/licenses/LICENSE.txt +0 -0
tunned_geobr/list_geobr.py
CHANGED
@@ -139,6 +139,7 @@ def list_geobr():
|
|
139
139
|
|
140
140
|
# Energy infrastructure datasets - Oil and Gas Infrastructure
|
141
141
|
{"Function": "read_exploration_blocks", "Geography": "Oil and Gas Exploration Blocks", "Years": "All", "Source": "ANP"},
|
142
|
+
{"Function": "read_production_fields", "Geography": "Oil and Gas Production Fields", "Years": "All", "Source": "ANP"},
|
142
143
|
{"Function": "read_fuel_bases", "Geography": "Fuel Bases", "Years": "All", "Source": "EPE"},
|
143
144
|
{"Function": "read_glp_bases", "Geography": "GLP (LPG) Bases", "Years": "All", "Source": "EPE"},
|
144
145
|
{"Function": "read_processing_facilities", "Geography": "Oil and Gas Processing Facilities", "Years": "All", "Source": "EPE"},
|
@@ -0,0 +1,86 @@
|
|
1
|
+
import geopandas as gpd
|
2
|
+
import tempfile
|
3
|
+
import os
|
4
|
+
import requests
|
5
|
+
from zipfile import ZipFile
|
6
|
+
from io import BytesIO
|
7
|
+
|
8
|
+
def read_production_fields(simplified=False):
|
9
|
+
"""Download Brazilian Oil and Gas Production Fields data from ANP.
|
10
|
+
|
11
|
+
This function downloads and processes the Brazilian Oil and Gas Production Fields data
|
12
|
+
from ANP (National Petroleum Agency).
|
13
|
+
Original source: ANP - Agência Nacional do Petróleo, Gás Natural e Biocombustíveis
|
14
|
+
|
15
|
+
Parameters
|
16
|
+
----------
|
17
|
+
simplified : boolean, by default False
|
18
|
+
If True, returns a simplified version of the dataset with fewer columns
|
19
|
+
|
20
|
+
Returns
|
21
|
+
-------
|
22
|
+
gpd.GeoDataFrame
|
23
|
+
Geodataframe with Brazilian oil and gas production fields data
|
24
|
+
|
25
|
+
Example
|
26
|
+
-------
|
27
|
+
>>> from tunned_geobr import read_production_fields
|
28
|
+
|
29
|
+
# Read production fields data
|
30
|
+
>>> fields = read_production_fields()
|
31
|
+
"""
|
32
|
+
|
33
|
+
url = "https://gishub.anp.gov.br/geoserver/BD_ANP/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=BD_ANP%3ACAMPOS_PRODUCAO_SIRGAS&maxFeatures=40000&outputFormat=SHAPE-ZIP"
|
34
|
+
|
35
|
+
try:
|
36
|
+
# Download the zip file
|
37
|
+
response = requests.get(url)
|
38
|
+
if response.status_code != 200:
|
39
|
+
raise Exception("Failed to download production fields data from ANP")
|
40
|
+
|
41
|
+
# Create a temporary directory
|
42
|
+
with tempfile.TemporaryDirectory() as temp_dir:
|
43
|
+
# Extract the zip file
|
44
|
+
with ZipFile(BytesIO(response.content)) as zip_ref:
|
45
|
+
zip_ref.extractall(temp_dir)
|
46
|
+
|
47
|
+
# Find the shapefile
|
48
|
+
shp_files = []
|
49
|
+
for root, dirs, files in os.walk(temp_dir):
|
50
|
+
shp_files.extend([os.path.join(root, f) for f in files if f.endswith('.shp')])
|
51
|
+
|
52
|
+
if not shp_files:
|
53
|
+
raise Exception("No shapefile found in the downloaded data")
|
54
|
+
|
55
|
+
# Read the shapefile
|
56
|
+
gdf = gpd.read_file(shp_files[0])
|
57
|
+
|
58
|
+
# Convert to SIRGAS 2000 (EPSG:4674) if not already
|
59
|
+
if gdf.crs is None:
|
60
|
+
gdf.crs = 4674
|
61
|
+
elif gdf.crs.to_epsg() != 4674:
|
62
|
+
gdf = gdf.to_crs(4674)
|
63
|
+
|
64
|
+
if simplified:
|
65
|
+
# Keep only the most relevant columns
|
66
|
+
# Note: Column names based on typical ANP data structure
|
67
|
+
columns_to_keep = [
|
68
|
+
'geometry',
|
69
|
+
'NOME', # Field name
|
70
|
+
'OPERADOR', # Operator
|
71
|
+
'BACIA', # Basin
|
72
|
+
'AMBIENTE', # Environment (onshore/offshore)
|
73
|
+
'AREA_KM2' # Area in square kilometers
|
74
|
+
]
|
75
|
+
|
76
|
+
# Filter columns that actually exist in the dataset
|
77
|
+
existing_columns = ['geometry'] + [col for col in columns_to_keep[1:] if col in gdf.columns]
|
78
|
+
gdf = gdf[existing_columns]
|
79
|
+
|
80
|
+
except Exception as e:
|
81
|
+
raise Exception(f"Error downloading production fields data: {str(e)}")
|
82
|
+
|
83
|
+
return gdf
|
84
|
+
|
85
|
+
if __name__ == '__main__':
|
86
|
+
read_production_fields()
|
@@ -1,10 +1,10 @@
|
|
1
|
-
tunned_geobr-1.0.
|
2
|
-
tunned_geobr-1.0.
|
3
|
-
tunned_geobr-1.0.
|
4
|
-
tunned_geobr-1.0.
|
1
|
+
tunned_geobr-1.0.8.dist-info/METADATA,sha256=ZflisVEC8hkJdlLKNkfDq3yEk3ms4LGGdUrMesIj5Y4,5018
|
2
|
+
tunned_geobr-1.0.8.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
|
3
|
+
tunned_geobr-1.0.8.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
|
4
|
+
tunned_geobr-1.0.8.dist-info/licenses/LICENSE.txt,sha256=mECZRcbde3HssOKe1Co4zgqBLGVN0OWpTsEy3LIbcRA,75
|
5
5
|
tunned_geobr/__init__.py,sha256=NCu9ZgG1i218TKc9ldtjc9m2_1iqOTgzTt0o1m4vZqs,7493
|
6
6
|
tunned_geobr/data/grid_state_correspondence_table.csv,sha256=FpkBuX_-lRXQ1yBrQODxQgG9oha9Fd8A8zGKfdsDAmk,2660
|
7
|
-
tunned_geobr/list_geobr.py,sha256=
|
7
|
+
tunned_geobr/list_geobr.py,sha256=n7bAi7O4QYdceAsfhI9M4mJ7zP1SbO5YS8iT1MQ-d9M,17654
|
8
8
|
tunned_geobr/lookup_muni.py,sha256=ny1zU4i6OagvL4Mrc6XQWPgn2RrJa_mXlKXh81oVYsM,3462
|
9
9
|
tunned_geobr/read_ama_anemometric_towers.py,sha256=M3qKBTBYdqHzTuWtRrBiLA88Ymt6g0cf7sakJd5mTRo,4686
|
10
10
|
tunned_geobr/read_amazon.py,sha256=HiwKnYebWe3nDMDRUqHpKJIO76bA4ERm4iJlCPhagQg,1286
|
@@ -115,6 +115,7 @@ tunned_geobr/read_pop_arrangements.py,sha256=D9Q1hT5t8yXfGoKaIRSPLjkVaf-eX2fS9of
|
|
115
115
|
tunned_geobr/read_ports.py,sha256=dOFOhQ2kim-_VJ_bC1ZiABqD9-FCOelkrTAaLD_yAmY,2848
|
116
116
|
tunned_geobr/read_private_aerodromes.py,sha256=Il9sfvBxDM-Xv6fkvOXYfaFLfjOaHlIw-tTGhUJ_TpM,2918
|
117
117
|
tunned_geobr/read_processing_facilities.py,sha256=8iCveDTk7MXm1bmb1pcknzen62HTGYQ3KEzvUGSdWfk,5349
|
118
|
+
tunned_geobr/read_production_fields.py,sha256=yw1g6u4kLGgiFwEbIcoj2IxvGGcT6u8sASqM2RRNk1Q,3182
|
118
119
|
tunned_geobr/read_public_aerodromes.py,sha256=nq3b9HF5_e-yeNcSfQ5ktdAGHKbSfDD_imj-tOhjKJA,2909
|
119
120
|
tunned_geobr/read_quilombola_areas.py,sha256=iY-r4YDRjaGyO-iPRBm1kWDkN_-axjYxMAQyAjIfG68,4288
|
120
121
|
tunned_geobr/read_railways.py,sha256=J6eM0yr049CaOL95PMd4sGc7JJHiEinJhqf0ThCOClg,2763
|
@@ -139,4 +140,4 @@ tunned_geobr/read_water_bodies_ana.py,sha256=Z-dpTPVgRHVndTeSFxx8uXn7ufMg2jm0Dlz
|
|
139
140
|
tunned_geobr/read_waterways.py,sha256=mEdoVogYWr5EYZ8bE3xMCVWyLrHYU7xTL2lUE0XbDAM,2951
|
140
141
|
tunned_geobr/read_weighting_area.py,sha256=m2X5Ua3jRqLlkqCQbIzR2jmo58pzqkyR3UYcGtgy20E,2325
|
141
142
|
tunned_geobr/utils.py,sha256=WT9PSGWvcERjj3yhfTvyWSE5ZiEjO4tYK5xIj5jJCg8,8170
|
142
|
-
tunned_geobr-1.0.
|
143
|
+
tunned_geobr-1.0.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|