こんにちは
1-1. Error について
CAD は GIS と違い、属性値をもつことができません。
しかし、どのレイヤに属しているかや線種といった情報は管理されています。そのため、それらの
情報を扱うため、入力データは Layer や Linetype といった属性を持つことができます。
逆に、それ以外の任意の属性 (arbitrary field) をもっているとエラーとなります。
他の属性を持った入力データに対して、明示的に属性を削除してエラーを避けるには
ogr2ogr -f DXF -select "" 50km_Circle_line.dxf 50km_Circle_line.shp
とします。 -select オプションは 変換に使用する属性を指定するものです。
1-2. Warning について
古い DXF の仕様では、64ビット長の整数をサポートしていません。
32ビットで表現できる整数は -2,147,483,648 〜 2,147,483,647 なので、10桁以上を表現するには
(形式として)64ビット整数が必要となりますが、対応していないという警告です。
属性の形式を変更するには、メッセージにあるように -mapFieldType オプションを使えば
よいのですが、 id 属性は切り捨て るため 1-1 のコマンドを打つと警告も発生しません。
2. srs について
-s_srs はなくても大丈夫なはずです。 -t_srs は目的に応じて使用してください。
4. レイヤについて
上でちらっと触れましたが Layer 属性があれば、それを DXF のレイヤ名になります。
もし QGIS 上の操作が可能であれば、フィールド演算機等で処理するのがわかりやすいと思います。
コマンドで行う場合には次のようにします。
ogr2ogr -f DXF -sql "SELECT '50km_Circle_line' AS Layer FROM '50km_Circle_line'" 50km_Circle_line.dxf 50km_Circle_line.shp
-sql オプションで SQL 文を実行し、変換用の属性リストとして新たな Layer 属性を作成しています。
SELECT '50km_Circle_line' AS Layer で 50km_Circle_line という文字列定数を Layer 属性の値に
指定しています。(ファイル名が希望とのことでしたが、別名にしたい場合は、書き換えれば別名になります。)
表から抽出するわけではありませんが、どうやら OGR SQL の場合 FROM がないとエラーになるみたいなので
FROM '50km_Circle_line' としています。これは 50km_Circle_line テーブル(レイヤ)からという意味です。
SQL 文が 1-1 の -select オプションの代わりになっているため、 -select はつける必要ありません。
3. 繰り返し処理について
バッチファイルの文法がいまいちわからないので、 bash (Linux) での構文ですが
for f in *.shp; do ogr2ogr -f DXF -sql "SELECT '${f%.shp}' AS Layer FROM '${f%.shp}'" ${f%.shp}.dxf $f; done
5. ポリゴンのハッチについて
設定オプションの DXF_WRITE_HATCH を FALSE にすればよいとありますので、
ogr2ogr -f DXF --config DXF_WRITE_HATCH FALSE -sql "SELECT '50km_Circle_polygon' AS Layer FROM '50km_Circle_polygon'" 50km_Circle_polygon.dxf 50km_Circle_polygon.shp
参考
ogr2ogr 全般(コマンドラインオプション等)
DXF ドライバの説明( DXF 特有の問題について)