File size: 1,285 Bytes
eb1aec4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
from azure.storage.blob import ContainerClient
import rasterio
import fiona
from tqdm import tqdm
import fiona.transform
import pandas as pd
import shapely.geometry
ACCOUNT_URL = ""
CONTAINER_NAME = ""
SAS_KEY = ""
def main():
client = ContainerClient(
account_url=ACCOUNT_URL,
container_name=CONTAINER_NAME,
credential=SAS_KEY
)
prefix = "satclip-1m/"
blobs = client.list_blobs(name_starts_with=prefix)
urls = []
for blob in tqdm(blobs):
urls.append(f"{ACCOUNT_URL}/{CONTAINER_NAME}/{blob.name}{SAS_KEY}")
non_sas_urls = [
url.split("?")[0] for url in urls
]
lats = []
lons = []
for url in tqdm(urls):
with rasterio.open(url) as src:
geom = shapely.geometry.mapping(shapely.geometry.box(*src.bounds))
warped_geom = fiona.transform.transform_geom(src.crs, "EPSG:4326", geom)
shape = shapely.geometry.shape(warped_geom)
x, y = shape.centroid.xy
x = x[0]
y = y[0]
lats.append(y)
lons.append(x)
df = pd.DataFrame({
"lat": lats,
"lon": lons,
"url": non_sas_urls,
})
df.to_csv("satclip-300k_index.csv", index=False)
if __name__ == '__main__':
main()
|