2017-03-14 6 views
0

私は以下のデータフレームを持っています。latとlonは地理座標系の緯度と経度です。これらの座標系をネイティブ(x、y)投影に変換しようとしています。どのように地理空間座標dataFrameをネイティブのx、y投影に変換しますか?

私はシングルポイントでpyprojを試しましたが、何千行ものデータフレーム全体でどのように処理を進めますか?私はこのような何かを取得しようとしています

 time     lat  lon 
    0 2011-01-31 02:41:00 18.504273 -66.009332 
    1 2011-01-31 02:42:00 18.504673 -66.006225 

 from pyproj import Proj, transform 

     inProj = Proj(init='epsg:4326') 
     outProj = Proj(init='epsg:3857') 
     x1,y1 = -105.150271116, 39.7278572773 
     x2,y2 = transform(inProj,outProj,x1,y1) 
     print (x2,y2) 

出力:

 time     lat  lon  x_Projn y_Projn 
    0 2011-01-31 02:41:00 18.504273 -66.009332 resp_x_val resp_y_val 
    1 2011-01-31 02:42:00 18.504673 -66.006225 resp_x_val resp_y_val 
    and so on... 

以下は、私が緯度/経度x、yにシステムにしようとしたコードです

ありがとうございました。

+0

あなたの試みでのコードはどこですか? –

+0

出力に何が問題なのですか? – Marat

+0

@Marat上記の出力には何も問題はありませんが、1つのポイントについてのみです。私はdataFrame全体でそれを行いたいと思います。また、ジオパンダを使用したくないのは、私が使用しているfionaとの互換性の問題があるからです。 pyprojでdf全体を一度に処理する方法はありますか? – Liza

答えて

1

残念ながら、pyprojは、ポイントごとに変換します。私はこのような何かがうまくいくと思う:

import pandas as pd 
from pyproj import Proj, transform 

inProj = Proj(init='epsg:4326') 
outProj = Proj(init='epsg:3857') 

def towgs84(row): 
    return pd.Series(transform(inProj, outProj, row["lat"], row["lon"])) 

wsg84_df = df.apply(towgs84, axis=1) # new coord dataframe with two columns 
関連する問題