質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

pythonでバイト型にしてくれというエラーが発生してしまいます。

Daimian
Daimian

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1回答

0評価

0クリップ

979閲覧

投稿2019/01/30 11:32

前提・実現したいこと

下記のコードを実行し、気象情報を描画し、加えてcsvファイルを作成するという処理をしようとしておりますが、下記の通りエラーが出てしまいます。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "ISS_LIS_FlashLoc_Quickview.py", line 62, in <module> writer.writerows(izip(["flash_lat"], ["flash_lon"])) #Define headers in row (izip creates columns) TypeError: a bytes-like object is required, not 'str'

該当のソースコード

ISS_LIS_FlashLoc_Quickview.py

python3

#### Import Python packages #### import numpy as np import glob from netCDF4 import Dataset import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap import csv # from itertools import izip try: # Python 2 from itertools import izip except ImportError: # Python 3 izip = zip #Define the file directories dataDir = '/Users/hoge/projects/hoge/NASA_challenge/nc/' #File path where ISS LIS data are stored csvfile = "/Users/hoge/projects/hoge/NASA_challenge/csv/isslis_flashloc_test.csv" #File path and name of CSV file #Identify all NetCDF files in the directory files = glob.glob(dataDir+'*.nc') #Create empty arrays to populate lightning flash location coordinates flash_lat = np.array([]) #latitude flash_lon = np.array([]) #longitude #Loop through list of NetCDF files, for each file, extract the lightning flash latidude #and longitude, and add to the respective empty array (flash_lat and flash_lon) for i in files: datafile = Dataset(i) flash_lat = np.concatenate([flash_lat,datafile.variables['lightning_flash_lat'][:]]) #add to array flash_lon = np.concatenate([flash_lon,datafile.variables['lightning_flash_lon'][:]]) #add to array #Create CSV files of values from the populated flash_lat/lon arrays with open(csvfile, 'wb') as myfile: writer = csv.writer(myfile) writer.writerows(izip(["flash_lat"], ["flash_lon"])) #Define headers in row (izip creates columns) writer.writerows(izip(flash_lat,flash_lon)) #Define data rows (izip creates columns) #Create plot of lightning flash location heat map plt.figure(figsize=((20,20))) #Set plot dimensions map = Basemap(projection='cyl', lon_0 = 0, resolution='c') lightning = map.hexbin(flash_lon, flash_lat, gridsize=300,bins='log',cmap='jet',mincnt=1,zorder=10) #Bin flash counts into hexbins using a gridsize of your choice #Draw geographic boundaries and meridians/parallels map.drawmapboundary(fill_color='k') map.fillcontinents(color='grey',lake_color='grey') map.drawcoastlines(color='white') map.drawcountries(color='white') map.drawmeridians(np.arange(0,390,30), labels=[0,0,0,1],fontsize=10, color="lightgray") map.drawparallels(np.arange(-90,120,30), labels=[1,0,0,0],fontsize=10, color="lightgray") cbar = map.colorbar(lightning,location='bottom',pad="5%") cbar.set_label('Flash Count') #Remember to change label plt.title('ISS LIS Detected Lightning Flash Locations January 4, 2018', fontsize = 18) #Rember to change title plt.show()

試したこと

csvファイルに書き込む際にbyte型にしてほしいという指摘だと思いますが、どこをどのように訂正していいかわからずです。。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。