Kristian Aalling Sorensen
Este é um módulo Python para trabalhar com imagens de satélite Sentinel-1, totalmente em Python. Ele permite que você encontre as imagens desejadas, baixe-as e trabalhe com elas (calibrar, speckle fitler etc.). Eu uso o pacote SentinelSAT para os metadados. Os dados são então baixados do NASA ASF.
Por que? Porque não quero trabalhar com ESA SNAP. Além disso, foi mais fácil ter todo o meu fluxo de trabalho em Python.
Não dou garantias de qualidade, segurança ou qualquer coisa. Use-o como desejar.
Introdução
Requisitos
Instalar e executar
Use imagens Sentinel-1 em Python
SAR, brevemente
Agradecimentos
entorpecido
geopandas
mgrs (deve ser removido em uma versão posterior.. desculpe..)
scikit-learn (deve ser removido em uma versão posterior.. desculpe..)
scipy (deve ser removido em uma versão posterior.. desculpe..)
cartopia
Travesseiro
pandas
sentinela
matplotlib
Este repositório pode ser instalado usando git clone OU pypi. Atualmente, coloquei-o apenas no pypi-test, então espero que permaneça lá.
Usando Pypi
GDAL. Certifique-se de que suas ligações gdal estejam funcionando ...
Instale sentinel_1_python usando teste pypy
python3 -m pip install sentinel-1-python --extra-index-url=https://test.pypi.org/simple/
Usando clone
Instale todos os requisitos
Clone
git clone https://github.com/aalling93/sentinel_1_python.git
Voltar para o índice
Obtenha metadados de imagens
com Sentinel_metadata() como met:met.area([29.9,21,56.7,58])met.get_metadata(sensor='s1_slc',start_data='20220109',end_date='20221010')
Filtre as imagens se quiser
met.iw() #filer então só temos IW
Exibindo as imagens antes do download:
met.plot_image_areas() # Mostrando a extensão das imagensmet.show_cross_pol(4)
Podemos então ver a extensão das imagens.
E exiba as imagens antes de baixá-las...
Baixe as imagens
pasta = f'{os.getenv("raw_data_dir")}/slc_sweden'with Satellite_download(met.products_df) as dwl:os.makedirs(folder, exist_ok=True)#save metadatadwl.products_df.to_pickle(f'{folder} /slc_dataframe.pkl')#faça o download do thumbnailsdwl.download_thumbnails(folder=f'{folder}/slc_thumbnails') #baixe as imagens slc no formato .zip e extraia para o formato .SAFE..dwl.download_sentinel_1(f'{folder}/slc')
Carregar, calibrar, imagem de filtro speckle em python
image_paths = glob.glob(f'{os.getenv("raw_data_dir")}/*/*/*.SAFE')img = s1_load(image_paths[0])img =img.calibrate(mode='gamma') # também poderia usar, por exemplo, 'sigma_0' img = img.boxcar(5) #could facilmente fazer, por exemplo, um Lee filtro..img.simple_plot(band_index=0)
agora podemos extrair uma região da imagem, definida pelo índice ou pelo conjunto de coordenadas.
indx = img.get_index(lat=57.0047,long=19.399)img[indx[0]-125:indx[0]+125,indx[1]-125:indx[1]+125].simple_plot(band_index=1 )
Voltar para o índice
Um Radar de Abertura Sintética (SAR) é um instrumento ativo que pode ser utilizado, por exemplo, para tarefas de vigilância não cooperativas. Suas maiores vantagens em relação, por exemplo, ao MSI, é que ele funciona dia e noite e pode ver através de nuvens e chuva. Ao colocar o instrumento SAR num satélite, é possível adquirir cobertura global com resolução temporal e espacial específica do projeto. Consequentemente, através da combinação, por exemplo, de instrumentos AIS e SAR, pode ser adquirida vigilância cooperativa e não cooperativa.
Um radar é um instrumento que emite pulsos eletromagnéticos com uma assinatura específica no espectro de microondas. Para um radar monoestático, o instrumento de radar transmite e recebe o sinal de retroespalhamento do pulso. O sinal de retroespalhamento depende da estrutura do alvo que ele iluminou e, portanto, comparando o sinal transmitido e recebido bem conhecido, é possível descrever as características geométricas e subjacentes do alvo usando a equação do radar monoestático:
onde ?? o sinal recebido é derivado do sinal transmitido, ??. A variável ? é o comprimento de onda específico do projeto do radar e ?(?,?) o padrão de ganho do radar. O sinal é disperso de acordo com a distância percorrida, ?. A seção transversal do radar, ?(?, ?), pode, portanto, ser derivada e descreve as características dielétricas e geométricas do alvo e depende dos ângulos ? e ?. Contudo, na presença de ruído, outra contribuição deve ser adicionada à equação do radar monoestático. Em meu outro Repo, https://github.com/aalling93/Finding-on-groud-Radars-in-SAR-images, trabalho com Radio Frequency Interfence (RFI). Um fenômeno onde outros sinais de outros radares interferem no sinal SAR. De modo geral, ?(?,?) descreve a energia disponível dentro da área alvo e deve, portanto, ser normalizada com a área. O coeficiente de retroespalhamento do radar é encontrado por:
onde diferentes áreas podem ser usadas dependendo do problema em questão. Ao usar um SAR como radar de imagem, cada pixel da imagem possui um valor de fase e amplitude. Ao calibrar a imagem, é possível obter o coeficiente de retroespalhamento do radar conforme visto na equação. . Neste módulo, é possível baixar, carregar e calibrar imagens do Sentinel-1 sem a necessidade de software externo ou, por exemplo, do (famoso) pacote Snappy.
Como um SAR recebe uma contribuição de retroespalhamento de todos os objetos dentro da área iluminada, surge um fenômeno semelhante a ruído chamado speckle. Isso resulta em uma imagem granular onde cada pixel é uma combinação do retroespalhamento do objeto individual na área. Em meu repositório, https://github.com/aalling93/Custom-made-SAR-speckle-reduction, implementei vários filtros Speckle diferentes e mostrei a diferença em condições variadas. .
Um radar de imagem SAR difere de um radar normal, por utilizar o movimento de sua plataforma para sintetizar uma melhor resolução, daí o nome Radar de Abertura Sintética. Ao tirar fotos de um alvo estacionário, uma frequência Doppler é encontrada a partir da velocidade da plataforma. O SAR emite e recebe vários pulsos de e para o mesmo alvo. Quando o SAR estiver voando em direção ao seu alvo, ele medirá uma frequência Doppler positiva que vai diminuindo até ficar perpendicular ao alvo, após o que experimentará uma frequência Doppler negativa crescente.
O sinal electromagnético é transmitido com polarização horizontal ou vertical, sendo os SAR paramétricos completos capazes de transmitir polarização horizontal e vertical. Devido à interação do pulso transmitido com o alvo, tanto o sinal vertical quanto o horizontal são refletidos de volta para o SAR. Isso faz com que vários mecanismos de dispersão diferentes ocorram. Existem vários tipos de mecanismos de espalhamento. Para detecção de navios, os mais proeminentes são o espalhamento de superfície e o espalhamento de salto duplo.
Um sinal transmitido será parcialmente absorvido e parcialmente refletido pelo objeto que ilumina. O espalhamento de superfície é o espalhamento que descreve o sinal refletido. Se uma superfície for completamente lisa (especular), nenhum retroespalhamento será refletido de volta ao SAR. Se a superfície for rugosa, ocorre um espalhamento e parte do pulso incidente é espalhado de volta para o SAR. Superfícies ásperas têm maior retroespalhamento em comparação com superfícies mais lisas. Além disso, VV e HH possuem um retroespalhamento maior em comparação com VH e HV (HV e VH são quase sempre iguais) tanto para superfícies ásperas quanto lisas. Uma superfície úmida resulta em uma seção transversal do radar mais alta. A retroespalhamento de uma superfície depende da rugosidade e da constante dielétrica do alvo que ela ilumina. A superfície do oceano irá, portanto, muitas vezes resultar numa pequena retrodifusão devido à sua superfície húmida e relativamente lisa (a baixas velocidades do vento), mesmo considerando a sua elevada constante dielétrica nas frequências SAR.
Espalhamento de salto duplo e ocorre quando o pulso transmitido é refletido especularmente duas vezes de um canto de volta ao SAR. Isso resulta em um retroespalhamento muito alto. Os navios geralmente têm muitos cantos e são muito suaves, resultando em um retroespalhamento especialmente alto. Portanto, muitas vezes é fácil diferenciar, por exemplo, os navios da superfície do oceano. Para mais informações sobre os mecanismos de dispersão nos oceanos. Tal como acima mencionado, existem vários outros mecanismos de dispersão e, ao detectar, por exemplo, navios em imagens SAR no Árctico, a dispersão de volume também deve ser considerada.
Devido à geometria do SAR e à sua plataforma móvel, os sensores de imagem SAR típicos são projetados para capturar imagens focadas com boa resolução, supondo que seu alvo esteja estacionário durante a aquisição da imagem. Esta focalização não pode ser feita em alvos móveis e, portanto, os instrumentos SAR normais são pouco adequados para detectar objectos em movimento rápido, como navios. O resultado é um fundo estático bem resolvido e um alvo móvel mal resolvido. Em tarefas de vigilância não cooperativas, este é um problema significativo. Partindo do pressuposto de que um alvo está se movendo perpendicularmente à linha de visão do SAR com uma aceleração constante, é possível reduzir o problema levando em consideração o deslocamento Doppler das imagens SAR. As embarcações marítimas normalmente não seguem esses padrões. Portanto, padrões de trajetória mais complexos devem ser levados em conta quando se olha para navios com instrumentos SAR.
Em resumo, utilizando as capacidades de um instrumento SAR, deverá ser possível detectar navios na superfície do oceano.
Eu, Simon Lupemba, Eigil Lippert
Consulte Arquivo de licença. Resumidamente:
Cite-me em seu trabalho! algo como: Kristian Aalling Sørensen (2020) sentinel_1_python [Código fonte]. https://github.com/aalling93/sentinel_1_python. e-mail: [email protected]
Faça com que o maior número possível me siga no Github. Você e seus colegas que pelo menos usam isso. Eu sou um caçador.
Marque este repositório com estrela, condicionado ao mesmo acima.
Talvez me escreva um ou dois e-mails, contando como fiz um trabalho incrível?
Ajude-me a melhorar o trabalho. Estou sempre em busca de colaboradores.