Olá, Izabela, se enviar o notebook é melhor para que eu encontre o erro
...mas batendo o olho já percebo que está empregando comandos muito
complicados para uma tarefa relativamente simples ...dê uma espiada na
foto que aparece bem no topo e à esquerda da nossa página de emails,
além daquela foto ser um link para a wolframcloud (que nem é a melhor
opção agora, veja na primeira página), espiando a imagem você vê
digitada uma solução muito simples, empreganado o GeoContourPlot. Este
comando não funciona no mathematica que tenho aqui em casa, que é a
versão 12, só funciona na 12.1, que é mais moderna. Foi um comando que
simplificou este tipo de situação. Eu digitei no wolframcloud, lá eles
sempre têm a última solução.
Vou digitar o comando aqui e fazer alguns comentários:
GeoContourPlot[Table[QuantityMagnitude[AirTemperatureData[{lat,
lon}]], {lat, -40, 0, 4}, {lon, -70, -30, 4}], DataRange->{GeoPosition[{-40,
70}], Geoposition[{0, -30}]}, ContourLabels->True]
...este comando GeoContourPlot é análogo ao ContourPlot que empregamos
em várias situações. O ContourPlot traça conjuntos de nível de uma
função de x e y no plano xy, o GeoContourPlot traça conjuntos de nível
de uma função da latitude e longitude, análogas ao x e y, sobre a Terra
(para você pegar intuição da latitude e longitude, sugerimos a leitura
das primeiras 20 páginas do meu livrinho, às quais você tem acesso sem
precisar adquirir o livro, na página de propaganda da Editora da
Unicamp,
http://www.editoraunicamp.com.br/produto_detalhe.asp?id=1217).
Mas não precisamos tanta familiaridade para utilizar o comando, podemos
continuar a conversa fazendo analogia entre os dois comandos.
Há uma diferença entre o ContourPlot e o GeoContourPlot, no ContourPlot
entramos com uma função de suas variáveis dada por uma expressão
analítica, por exemplo
g[x,y] = 5000 x + 2800 y,
que dava o lucro, que queríamos otimizar, de uma companhia. Tal se deu no
elemento gráfico b do notebook que está em
http://www.ime.unicamp.br/~marcio/ps2020/nbooks/20200306.nb ...mas
no GeoContourPlot não é por expressões analíticas que entramos com uma
função. Devemos entrar com uma lista de valores da função, para um
conjunto de pontos da Terra, dados por sua latitude e longitude.
Bem, por este motivo empregamos o comando Table, este comando gera
listas de valores. Dê uma estudada neste comando no help do mathematica,
é muito útil, em várias situações, o mathematica e outros softs adoram
trabalhar com listas de coisas. Perceba, esta forma de entrar com uma
função definida sobre a Terra é mais natural ...pois é até mais razoável
que uma função seja dada por uma lista de valores ...e que ninguém
conheça uma expressão analítica desta função, quando está estudando
coisas que ocorrem no planeta.
Vamos dar alguns exemplos do Table, se entramos com
Table[3k, {k, 0, 4}],
a resposta será a lista
{0, 3, 6, 9, 12}
...se entramos com
Table[3k, {k, 0, 4, 2}]
a resposta será a lista
{0, 6, 12}
...daí o k vai de 2 em 2.
O Table pode ser duplamente indexado, se entramos com
Table[j x^k, {j, 1, 3}, {k, 1, 2}]
a resposta será
{{x, x^2}, {2 x, 2 x^2}, {3 x, 3 x^2}}
...uma lista duplamente indexada.
Voltando à expressão do nosso GeoContourPlot, empregamos o Table e uma
função de dados já implantada no mathematica, AirTemperature, que dá
alguma medida de temperatura média na Terra, em função de latitude e
longitude, para gerar a lista de valores da função cujos conjuntos de
nível (isotermas) queremos ver desenhados. O comando QuantityMagnitude
apenas tirou a unidade, o comando ficou da forma
Table[QuantityMagnitude[AirTemperatureData[{lat, lon}]], {lat, -40,
0, 4}, {lon, -70, -30, 4}]
...perceba que entramos com uma lista de valores de temperatura
duplamente indexada por latitude e longitude, é desta forma que entramos
com funções no GeoContourPlot, na forma de listas e não por expressões
analiticas. Note que a latitude varia quatro em quatro graus, de -40 (40
graus sul) até 0 (equador), são dez valores ...e que a longitude varia,
também de quatro em quatro graus, de -70 (70 graus oeste) até -30 (30
graus oeste), são dez valores ...assim a nossa lista duplamente indexada
declara o valor da temperatura em 10x10=100 localidades da Terra.
Em ContourLabels->True, pedimos para que, no gráfico apareçam os rótulos
dos vários conjuntos de nível, no caso para que apareçam escritas as
temperaturas escritas próximas às isotermas. Também definimos o teatro
de plotagem por DataRange->{GeoPosition[{-40, 70}], Geoposition[{0,
-30}]}, declaramos duas localidades que funcionam como os cantos de um
retângulo estilizado, limitando uma faixa de latitudes entre -40 e 0 e
longitudes entre -30 e -70 ...é um pouco diferente da forma com a qual
entramos com o teatro no ContourPlot, no exemplo que está gráfico b do
notebook que está em
http://www.ime.unicamp.br/~marcio/ps2020/nbooks/20200306.nb nós
declaramos a variação do x e do y, definindo um teatro retângular no
ContourPlot através de
{x, 0, 3000}, {y, 0, 1500},
se tivéssemos que entrar com os cantos do retângulo que serve do teatro,
analogamente ao que fazemos no GeoContourPlot teríamos que dar os
vértices do retângulo, que são
{0, 0} e {3000, 1500}
...há esta diferença de como declarar o retângulo de plotagem ...bem
sobre a Terra não é bem um retângulo, mas um retângulo estilizado.
Sugiro que faça o desenho no wolframcloud com o GeoContourPlot na Terra,
fazendo analogia com o ContourPlot, que empregamos tantas vezes no plano
xy.
Saudações. Márcio.