in fact the points are not in a rectangular array and pixels are missing, like 
you said

I'll put the code and binary file online tomorrow as I have not access to it 
today, but reading it is not the problem

when read, the values are in three arrays of same size, which I will have to 
convert to a 2D masked array... we'll see tomorrow if I have succeeded

many thanks

>Antoine De Pauw wrote:
>> Thanks Jeff,
>> 
>> In fact my points are arranged in three unsorted arrays, with a simple 
>> scheme (thats why I couldn't plot them with imshow and others)
>> 
>> arrays:
>> 
>> [lat][lon][val]
>> [-10][ 17][0.3]
>> [ 37][ 23][3.7]
>>  ...  ...  ...
>> 
>> and so for many rows...
>> 
>> what I have to do is looping through my arrays like that
>> 
>> while i < rowcount:
>>     plot_to_map(lat[i],lon[i],val[i])
>> 
>> it is evidently an idea of how it could be done easily but my knowledge of 
>> these libraries is too weak for me to figure out how to do it
>> 
>> my data comes from huge binary files but is extremely simple, so it would be 
>> really easy for anyone to help me as the problem itself is how to put 
>> unsorted points on the map with latitude and longitude coordinates
>> 
>
>Antoine:  You haven't said if your data forms a rectangular array.  If 
>so, you can build a 2-d array from the input file and plot it with 
>imshow.  If not, you can still plug the elements into a 2-d masked 
>array, leaving the missing pixels masked.  You say the points are 
>'unsorted', does that mean they are randomly distributed and do not form 
>a rectangular grid?
>
>It would really be much easier to help if you gave us more information, 
>such as how the data is structured, what the pixel footprint is, etc. 
>Perhaps you could post the binary file on an ftp site somewhere with 
>code to read it.
>
>Also, please hit 'reply all' when replying, so the matplotlib users 
>mailing list is CC'ed.
>
>-Jeff
>>> Antoine De Pauw wrote:
>>>> Sir,
>>>>
>>>> I'm sorry, as english is not my mothertongue and it is sometimes difficult 
>>>> to be understandable.
>>>>
>>>> All is in the script I gave to you initially, except the point drawing 
>>>> code which would be useless as it is proven not to work (I dont know the 
>>>> method to do it).
>>>>
>>>> What I have is a map, and a set of pixels I have to put on it with 
>>>> geographic coordinates.
>>>>
>>>> I cannot find the right method to put colour pixels on the map, that's the 
>>>> problem.
>>>>
>>>> I have that map in miller projection, and three arrays containing 
>>>> respectively latitude, longitude and satellite measured value.
>>>>
>>>> What I need to obtain is something approximately like this: 
>>>> http://wwwoma.be/BIRA-IASB/Molecules/SO2archive/info/background/so2sc200703_00_lr.gif
>>>>  but with the basemap toolkit.
>>>>
>>>> So, my question is: how could I do to plot a coloured pixel at coordinates 
>>>> lat:lon on that map? If I have just the method to project a geographic 
>>>> coordinate on the map and put a coloured pixel at the right place, all is 
>>>> done and I just have to loop my arrays... Also, I would have to implement 
>>>> some antialiasing on the map.
>>>>   
>>> Antoine:
>>>
>>> Are the pixels arranged on a regular grid - or are they randomly 
>>> distributed?  If they are on a grid, it's easy (using pcolor or imshow) 
>>>
>>> If you could send me your data I may be able to get you started.
>>>
>>> (I'm cc'ing the matplotlib list so others can join in the discussion).
>>>
>>>
>>> -Jeff
>>>> If this is not possible to do it in a simple and explainable way, please 
>>>> tell me and I'll continue using matlab or searching for the bit of code 
>>>> which will save me
>>>>
>>>> Anyway, I have to thank you for your interest to help me..
>>>>
>>>> Many thanks,
>>>>
>>>> Antoine De Pauw
>>>>
>>>>   
>>>>> Antoine De Pauw wrote:
>>>>>     
>>>>>> Hi, and thanks for the answer
>>>>>>
>>>>>> In fact, what I do is reading a binary file to obtain 3 arrays 
>>>>>> (Lat,Lon,Val) describing geographic points which are associated by index 
>>>>>> (like point 1 is Lat[0]:Lon[0] with value Val[0])
>>>>>>
>>>>>> What I need to do is to plot some points on the map (miller projection 
>>>>>> for most) based on latitude and longitude, to obtain a colour map 
>>>>>> (points are unordered, it is from IASI satellite computations)
>>>>>>
>>>>>> I'm able to create a map, draw simple things on it, etc but the problem 
>>>>>> I have is any method I try for plotting points is failing, either 
>>>>>> pcolor, pcolormesh, imshow, etc.
>>>>>>
>>>>>> When I found your post on that mailing list, I figured out that you 
>>>>>> might have the experience and skills to easily explain to me how to 
>>>>>> manipulate these points and plot them on the map, as there's like no 
>>>>>> help on the web except standard examples...
>>>>>>
>>>>>> Please tell me if this is possible for you to give me some tips, or if 
>>>>>> it takes too much of your time just advice me some lectures
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> De Pauw Antoine
>>>>>>   
>>>>>>       
>>>>> Antoine:  It would really help to have a script demonstrating your 
>>>>> problem.  It sounds to me like you want to plot markers representing a 
>>>>> set of points - for that you should use the scatter method.  pcolor, 
>>>>> pcolormesh and friends are for plotting gridded data.
>>>>>
>>>>> -Jeff
>>>>>     
>>>>>>   
>>>>>>       
>>>>>>> De Pauw Antoine wrote:
>>>>>>>     
>>>>>>>         
>>>>>>>> Dear sir,
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> I&#8217;m currently trying to improve our plotting tools here at the 
>>>>>>>> &#8220;Quantum 
>>>>>>>> Chemistry and Photophysics&#8221; section of the Université Libre de 
>>>>>>>> Bruxelles, and I ran, after many time passed at searching for a 
>>>>>>>> solution, on an explanation from you here: 
>>>>>>>> http://www.nabble.com/Re:-matplotlib-basemap-question-tt17759370.html
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> It seems that you could help me find a solution, as I cannot plot any 
>>>>>>>> points on maps.
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> Could you please tell me what I could do to plot data in a simple way, 
>>>>>>>> assuming I have 3 unordered arrays containing respectively latitude, 
>>>>>>>> longitude and values to plot?
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> Some tips would be very nice from you as any method I have tried so 
>>>>>>>> far 
>>>>>>>> give me some errors&#8230;
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> Thank you very much in advance,
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> PS: I give you the code I&#8217;m using currently, missing the 
>>>>>>>> plotting part
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> from mpl_toolkits.basemap import Basemap
>>>>>>>>
>>>>>>>> from numpy import *
>>>>>>>>
>>>>>>>> from scipy.io.numpyio import fread
>>>>>>>>
>>>>>>>> import matplotlib.pyplot as plt
>>>>>>>>
>>>>>>>> import numpy as np
>>>>>>>>
>>>>>>>> import os
>>>>>>>>
>>>>>>>> import sys
>>>>>>>>
>>>>>>>> import array
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> fileName="c:/20080821.b56"
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> print('preparing map')   
>>>>>>>>
>>>>>>>> map = 
>>>>>>>> Basemap(projection='mill',lat_0=0,lon_0=0,resolution='i',area_thresh=30000.)
>>>>>>>>
>>>>>>>> map.drawcoastlines(0.5,antialiased=1)
>>>>>>>>
>>>>>>>> map.drawmapboundary()
>>>>>>>>
>>>>>>>> #map.drawmeridians(np.arange(-180,180,60),linewidth=0.5, 
>>>>>>>> labels=np.arange(-180,180,60), labelstyle="+/-")
>>>>>>>>
>>>>>>>> #map.drawparallels(np.arange(-90,90,30), linewidth=0.5, 
>>>>>>>> labels=np.arange(-180,180,30), labelstyle="+/-")
>>>>>>>>
>>>>>>>> print('reading binary data')
>>>>>>>>
>>>>>>>> nbreligne=long(os.stat(fileName)[6])/(8*int(fileName[-2:]))
>>>>>>>>
>>>>>>>> Lat=zeros(nbreligne)
>>>>>>>>
>>>>>>>> Lon=zeros(nbreligne)
>>>>>>>>
>>>>>>>> Val=zeros(nbreligne)
>>>>>>>>
>>>>>>>> rawfile=fromfile(open(fileName,'rb'),'d',-1)       
>>>>>>>>
>>>>>>>> Lat=rawfile[0:nbreligne]
>>>>>>>>
>>>>>>>> Lon=rawfile[nbreligne:nbreligne*2]
>>>>>>>>
>>>>>>>> Val=rawfile[nbreligne*21:nbreligne*22]
>>>>>>>>
>>>>>>>> print('shifting latitudes and projecting to map')
>>>>>>>>
>>>>>>>> i=0
>>>>>>>>
>>>>>>>> while i < nbreligne:
>>>>>>>>
>>>>>>>>     if(Lon[i]>180):
>>>>>>>>
>>>>>>>>         print(Lon[i])
>>>>>>>>
>>>>>>>>         Lon[i]-=360
>>>>>>>>
>>>>>>>>         print(Lon[i])
>>>>>>>>
>>>>>>>>     i+=1
>>>>>>>>
>>>>>>>> print('plotting data')
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> #plotting code comes here
>>>>>>>>       
>>>>>>>>           
>>>>>>> Antoine:  If you send me a self-contained script that produces the 
>>>>>>> problem you see, I can help you debug it.  As it stands now, I have 
>>>>>>> very 
>>>>>>> little to work with - it could be your plotting commands, or it could 
>>>>>>> be 
>>>>>>> your data.
>>>>>>>
>>>>>>> -Jeff
>>>>>>>     
>>>>>>>         
>>>>>>>>  
>>>>>>>>
>>>>>>>> print('saving map')       
>>>>>>>>
>>>>>>>> plt.savefig("testfig.png",dpi=600)
>>>>>>>>
>>>>>>>> print('done')
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> *Antoine De Pauw*
>>>>>>>> Collaborateur de recherches, Informatique - Research collaborator, IT
>>>>>>>> Laboratoire de chimie quantique et photophysique - Quantum chemistry 
>>>>>>>> and 
>>>>>>>> photophysics laboratory
>>>>>>>> *Université Libre de Bruxelles - ULB <http://ww.ulb.ac.be/>*
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>>       
>>>>>>>>           
>>>>>>> -- 
>>>>>>> Jeffrey S. Whitaker         Phone  : (303)497-6313
>>>>>>> Meteorologist               FAX    : (303)497-6449
>>>>>>> NOAA/OAR/PSD  R/PSD1        Email  : [EMAIL PROTECTED]
>>>>>>> 325 Broadway                Office : Skaggs Research Cntr 1D-113
>>>>>>> Boulder, CO, USA 80303-3328 Web    : http://tinyurl.com/5telg
>>>>>>>
>>>>>>>
>>>>>>>     
>>>>>>>         
>>>>>>   
>>>>>>       
>>>>> -- 
>>>>> Jeffrey S. Whitaker         Phone : (303)497-6313
>>>>> NOAA/OAR/CDC  R/PSD1        FAX   : (303)497-6449
>>>>> 325 Broadway                Boulder, CO, USA 80305-3328
>>>>>
>>>>>
>>>>>
>>>>>     
>>>>
>>>>   
>>>
>>> -- 
>>> Jeffrey S. Whitaker         Phone : (303)497-6313
>>> NOAA/OAR/CDC  R/PSD1        FAX   : (303)497-6449
>>> 325 Broadway                Boulder, CO, USA 80305-3328
>>>
>>>
>>>
>> 
>> 
>
>
>-- 
>Jeffrey S. Whitaker         Phone  : (303)497-6313
>Meteorologist               FAX    : (303)497-6449
>NOAA/OAR/PSD  R/PSD1        Email  : [EMAIL PROTECTED]
>325 Broadway                Office : Skaggs Research Cntr 1D-113
>Boulder, CO, USA 80303-3328 Web    : http://tinyurl.com/5telg
>
>



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to