- Timestamp:
- Apr 7, 2016, 6:03:14 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/nc_var_tools.py
r706 r707 18433 18433 # print 'frac lon, lat:', fraclon[ilatlonfrac[0],ilatlonfrac[1]], ',', \ 18434 18434 # fraclat[ilatlonfrac[0],ilatlonfrac[1]] 18435 # ilatlon = [ilatlonfrac[0]*fracy, ilatlonfrac[1]*fracx] 18436 # print 'input index:',ilatlon, 'lon lat:', ilon[ilatlon[0],ilatlon[1]], ',', \ 18437 # ilat[ilatlon[0],ilatlon[1]] 18435 # print 'values lon, lat:', lonv, latv 18438 18436 18439 18437 # Providing fraction range … … 18464 18462 iybeg = 0 18465 18463 iyend = fracy+1 18466 if ilatlonfrac[1] < fracdx: 18467 ixbeg = (ilatlonfrac[1]-1)*fracx 18468 ixend = ilatlonfrac[1]*fracx+1 18464 if ilatlonfrac[1] < fracdx: 18465 if ilatlonfrac[1] != 0: 18466 ixbeg = (ilatlonfrac[1]-1)*fracx 18467 ixend = ilatlonfrac[1]*fracx+1 18468 else: 18469 ixbeg = 0 18470 ixend = fracx+1 18469 18471 else: 18470 18472 ixbeg = fracdx*fracx … … 18475 18477 # ifracend = [ilatlonfrac[0]+1, ilatlonfrac[1]+1] 18476 18478 if ilatlonfrac[0] < fracdy: 18477 iybeg = (ilatlonfrac[0]-1)*fracy 18478 iyend = ilatlonfrac[0]*fracy+1 18479 if ilatlonfrac[0] != 0: 18480 iybeg = (ilatlonfrac[0]-1)*fracy 18481 iyend = ilatlonfrac[0]*fracy+1 18482 else: 18483 iybeg = 0 18484 iyend = fracy+1 18479 18485 else: 18480 18486 iybeg = fracdy*fracy 18481 18487 iyend = dy+1 18482 18488 if ilatlonfrac[1] < fracdx: 18483 ixbeg = (ilatlonfrac[1]-1)*fracx 18484 ixend = ilatlonfrac[1]*fracx+1 18489 if ilatlonfrac[1] != 0: 18490 ixbeg = (ilatlonfrac[1]-1)*fracx 18491 ixend = ilatlonfrac[1]*fracx+1 18492 else: 18493 ixbeg = 0 18494 ixend = fracx+1 18485 18495 else: 18486 18496 ixbeg = fracdx*fracx … … 18491 18501 # ifracend = [ilatlonfrac[0]+1, ilatlonfrac[1]] 18492 18502 if ilatlonfrac[0] < fracdy: 18493 iybeg = (ilatlonfrac[0]-1)*fracy 18494 iyend = ilatlonfrac[0]*fracy+1 18503 if ilatlonfrac[0] != 0: 18504 iybeg = (ilatlonfrac[0]-1)*fracy 18505 iyend = ilatlonfrac[0]*fracy+1 18506 else: 18507 iybeg = 0 18508 iyend = fracy+1 18495 18509 else: 18496 18510 iybeg = fracdy*fracy … … 18840 18854 # print fraclat 18841 18855 18856 # Error at 150024, 150025, 151709, 153421 18842 18857 print ' ' + fname + ': re-locating:',Ninpts,'points...' 18843 18858 if kind == 'Goode': 18844 for iv in range( Ninpts):18859 for iv in range(150024,Ninpts): 18845 18860 if newvarinpt[iv] == 0: 18846 18861 18847 difflonlat = np.sqrt((projlon-lonvs[iv])**2. + (projlat-latvs[iv])**2.)18848 mindiffLl = np.min(difflonlat)18849 ilatlon = index_mat(difflonlat, mindiffLl)18850 # ilatlon2, mindiffLl2 = CoarselonlatFind(projlon, projlat, lonvs[iv], latvs[iv],.1)18862 # difflonlat = np.sqrt((projlon-lonvs[iv])**2. + (projlat-latvs[iv])**2.) 18863 # mindiffLl = np.min(difflonlat) 18864 # ilatlon = index_mat(difflonlat, mindiffLl) 18865 ilatlon, mindiffLl = CoarselonlatFind(projlon,projlat,lonvs[iv],latvs[iv],.1) 18851 18866 18852 18867 # if ilatlon[0] != ilatlon2[0] or ilatlon[1] != ilatlon2[1]: … … 18855 18870 # quit(-1) 18856 18871 18857 if type(newvar[ilatlon[0],ilatlon[1]]) != type(amsk): 18858 print errormsg 18859 print ' ' + main + ': point', projlon[ilatlon[0],ilatlon[1]], \ 18860 ',', projlat[ilatlon[0],ilatlon[1]], 'already filled!!' 18861 print ' value:', newvar[ilatlon[0],ilatlon[1]], 'distance:', \ 18862 newvarindiff[newvarin[ilatlon[0],ilatlon[1]]] 18863 18864 print ' iv:', iv, 'lon:', lonvs[iv],'lat:',latvs[iv] 18865 print ' mindiffLl:',mindiffLl,'ilatlon:',ilatlon 18866 quit(-1) 18867 # print ' Lluis; ' + fname + ' iv:', iv, 'lon:', lonvs[iv],'lat:',latvs[iv] 18868 # print ' Lluis; ' + fname + ' mindiffLl:',mindiffLl,'ilatlon:',ilatlon 18869 # print ' Lluis; ' + fname + ' A found lon:',projlon[ilatlon[0], ilatlon[1]], 'lat:', projlat[ilatlon[0], ilatlon[1]] 18870 # quit() 18871 18872 percendone(iv,Ninpts,0.5,'done:') 18873 if mindiffLl > mindiff: 18874 print errormsg 18875 print ' ' + fname + ': for point #', iv,'lon,lat in ' + \ 18876 'incomplet map:', lonvs[iv], ',', latvs[iv], 'there is not ' + \ 18877 'a set of lon,lat in the completed map closer than: ', mindiff,\ 18878 '!!' 18879 print ' minimum difference:', mindiffLl 18880 quit() 18881 18882 if ilatlon[0] >= 0 and ilatlon[1] >= 0: 18883 newvar[ilatlon[0],ilatlon[1]] = ovar[iv] 18884 newvarin[ilatlon[0],ilatlon[1]] = iv 18885 newvarinpt[iv] = 1 18886 newvarindiff[iv] = mindiffLl 18887 # print 'Lluis iv:', newvarin[ilatlon[0],ilatlon[1]], \ 18888 # 'localized:', newvarinpt[iv], 'values:', \ 18889 # newvar[ilatlon[0],ilatlon[1]], 'invalues:', ovar[iv], \ 18890 # 'mindist:', newvarindiff[iv], 'point:',ilatlon 18891 else: 18892 print errormsg 18893 print ' ' + fname + ': point iv:', iv, 'at', lonvs[iv], ',' , \ 18894 latvs[iv],' not relocated !!' 18895 print ' mindiffl:', mindiffLl, 'ilon:', ilatlon[1], \ 18896 'ilatlon:', ilatlon[1] 18897 quit(-1) 18872 # if mindiffLl != 0. or type(newvar[ilatlon[0],ilatlon[1]]) != type(amsk): 18873 # print errormsg 18874 # if mindiffLl !=0.: 18875 # print ' ' + main + ': no zero', newvarindiff[iv], 'distance!!' 18876 # else: 18877 # print ' ' + main+': point',projlon[ilatlon[0],ilatlon[1]], \ 18878 # ',', projlat[ilatlon[0],ilatlon[1]], 'already filled!!' 18879 # print ' value:',newvar[ilatlon[0],ilatlon[1]],'distance:',\ 18880 # newvarindiff[iv] 18881 # 18882 ## print ' iv:', iv, 'lon:', lonvs[iv],'lat:',latvs[iv] 18883 ## print ' mindiffLl:',mindiffLl,'ilatlon:',ilatlon 18884 ## quit(-1) 18885 ## print ' Lluis; ' + fname + ' iv:', iv, 'lon:', lonvs[iv],'lat:',latvs[iv] 18886 ## print ' Lluis; ' + fname + ' mindiffLl:',mindiffLl,'ilatlon:',ilatlon 18887 ## print ' Lluis; ' + fname + ' A found lon:',projlon[ilatlon[0], ilatlon[1]], 'lat:', projlat[ilatlon[0], ilatlon[1]] 18888 ## quit() 18889 # else: 18890 if mindiffLl == 0. and type(newvar[ilatlon[0],ilatlon[1]]) == type(amsk): 18891 percendone(iv,Ninpts,0.5,'done:') 18892 if mindiffLl > mindiff: 18893 print errormsg 18894 print ' ' + fname + ': for point #', iv,'lon,lat in ' + \ 18895 'incomplet map:', lonvs[iv], ',', latvs[iv], 'there is ' + \ 18896 'not a set of lon,lat in the completed map closer than: ', \ 18897 mindiff, '!!' 18898 print ' minimum difference:', mindiffLl 18899 quit(-1) 18900 18901 if ilatlon[0] >= 0 and ilatlon[1] >= 0: 18902 newvar[ilatlon[0],ilatlon[1]] = ovar[iv] 18903 newvarin[ilatlon[0],ilatlon[1]] = iv 18904 newvarinpt[iv] = 1 18905 newvarindiff[iv] = mindiffLl 18906 # print 'Lluis iv:', newvarin[ilatlon[0],ilatlon[1]], \ 18907 # 'localized:', newvarinpt[iv], 'values:', \ 18908 # newvar[ilatlon[0],ilatlon[1]], 'invalues:', ovar[iv], \ 18909 # 'mindist:', newvarindiff[iv], 'point:',ilatlon 18910 else: 18911 print errormsg 18912 print ' ' + fname + ': point iv:', iv, 'at', lonvs[iv], ',',\ 18913 latvs[iv],' not relocated !!' 18914 print ' mindiffl:', mindiffLl, 'ilon:', ilatlon[1], \ 18915 'ilatlon:', ilatlon[1] 18916 quit(-1) 18898 18917 18899 18918 if np.mod(iv,100) == 0:
Note: See TracChangeset
for help on using the changeset viewer.