python 从SSMI/S海冰密集度资料中寻找纬度的xy值

ezykj2lf  于 11个月前  发布在  Python
关注(0)|答案(1)|浏览(107)

我想找到在一系列纬度和经度坐标(例如lon=-74.7732772827148和lat=-69.3250350952148)处存在的相应冰浓度值。然而,我使用的数据集(https://cds.climate.copernicus.eu/cdsapp#!/dataset/satellite-sea-ice-concentration?tab=form)具有以下一些属性:

double xc(xc) ;
                xc:units = "km" ;
                xc:long_name = "x coordinate of projection (eastings)" ;
                xc:standard_name = "projection_x_coordinate" ;
        double yc(yc) ;
                yc:units = "km" ;
                yc:long_name = "y coordinate of projection (northings)" ;
                yc:standard_name = "projection_y_coordinate" ;
        float lat(yc, xc) ;
                lat:units = "degrees_north" ;
                lat:long_name = "latitude coordinate" ;
                lat:standard_name = "latitude" ;
        float lon(yc, xc) ;
                lon:units = "degrees_east" ;
                lon:long_name = "longitude coordinate" ;
                lon:standard_name = "longitude" ;
        int ice_conc(time, yc, xc) ;
                ice_conc:_FillValue = -32767 ;
                ice_conc:long_name = "fully filtered concentration of sea ice using atmospheric correction of brightness temperatures and open water filters" ;
                ice_conc:standard_name = "sea_ice_area_fraction" ;
                ice_conc:units = "%" ;
                ice_conc:valid_min = 0 ;
                ice_conc:valid_max = 10000 ;
                ice_conc:grid_mapping = "Lambert_Azimuthal_Grid" ;
                ice_conc:coordinates = "time lat lon" ;
                ice_conc:ancillary_variables = "total_standard_error status_flag" ;
                ice_conc:scale_factor = 0.01 ;
                ice_conc:comment = "this field is the primary sea ice concentration estimate for this climate data record"

字符串
如果lat和lon都是x和y的函数,我怎么找到对应的x和y呢?
我试过用pyproj改变投影,但是它不能正确地投影。下面是一个例子:

lambert_aea1 = {'proj': 'laea',
          'lat_0':-90, 
          'lon_0':0, 
          'ellps': 'WGS84',
          'datum': 'WGS84'}
    
    inProj = Proj(init = 'epsg:4326') 
    outProj1 = Proj(lambert_aea1)
    
    x1,y1 = np.array(transform(inProj,outProj1,lat_63_1[j],lon_63_1[j]))


结果为x1=-1586154.039780751和y1=598565.7767689897
但x和y值在-5387.5和5387.5的范围内
有没有其他方法可以直接获得值而不是改变投影?

ajsxfq5m

ajsxfq5m1#

如果查看文件中x和y的元数据,单位是公里,对于大多数投影,单位是米或英尺。
如果将x和y乘以1,000并比较结果,它在您预期的范围内。

相关问题