26 lines
615 B
Python
26 lines
615 B
Python
|
#!/usr/bin/python
|
||
|
from pyproj import CRS
|
||
|
import numpy as np
|
||
|
import geopandas as gpd
|
||
|
from shapely.geometry import LineString
|
||
|
|
||
|
INTERVAL = 0.5
|
||
|
TAIL_LEN = 4
|
||
|
SINE_LEN = 7
|
||
|
|
||
|
|
||
|
def main():
|
||
|
tails = np.zeros(int(TAIL_LEN / INTERVAL))
|
||
|
amplitude = np.sin(np.arange(0, SINE_LEN, INTERVAL))
|
||
|
y = np.concatenate([tails, amplitude, tails])
|
||
|
x = np.arange(-TAIL_LEN, SINE_LEN+TAIL_LEN, INTERVAL)
|
||
|
geom = LineString(zip(x, y))
|
||
|
df = gpd.GeoDataFrame(crs=CRS(3346))
|
||
|
df['geometry'] = None
|
||
|
df.loc[0, 'geometry'] = geom
|
||
|
df.to_file("sinewave.json", driver='GeoJSON')
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|