python取省边界_提取行政区边界经纬度坐标(高德+百度)

本文介绍了如何使用Python结合高德和百度地图API提取城市经纬度坐标,并保存为文件。针对浏览器兼容性问题,提供了JavaScript下载文件的解决方案。同时,文章比较了百度和高德地图在获取行政区域边界时的精度和问题,建议使用高德地图。
摘要由CSDN通过智能技术生成

前言

近来由于工作需要,需要提取某些城市的经纬度坐标,稍微搜索了一下,发现百度地图和高德地图都提供了相关的函数和例子.那么剩余的工作也就比较简单了,保存坐标,然后转换为WGS坐标,这样才能和现有的GPS数据以及地图匹配.

主要问题和解决方法

本地保存文件跨浏览器支持

由于安全的原因,JavaScript本地保存文件的方式通常都只有IE支持的ActiveXObject/Open方法,每次都要提示不安全和允许运行,非常麻烦.好在其他浏览器目前都支持标签实现文件下载的方法.经测试最新的Google Chrome, Mozilla Firefox,百度浏览器,360浏览器下都可以运行.不说废话,直接上代码:

function Download() {

// IE

if(/msie/i.test(navigator.userAgent)) {

var w = window.open("", "导出", "height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");

var filename = document.getElementById("filename").value ;

var content = document.getElementById("content").value;

w.document.charset = "UTF-8";

w.document.wri

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Markowitz有效边界是一种投资组合优化方法,它可以帮助投资者在给定一定风险下获得最大的收益。在Python中,我们可以使用pandas和numpy库来实现该方法。 首先,我们需要获取投资组合的历史收益率数据。假设我们有10只股票的收益率数据,我们可以使用pandas库中的read_csv函数来读取数据文件。 ``` import pandas as pd # 读取收益率数据 data = pd.read_csv('returns_data.csv') # 提取收益率数据列 returns = data.drop('Date', axis=1) ``` 接下来,我们需要计算每只股票的平均收益率和协方差矩阵。我们可以使用numpy库中的mean和cov函数来实现。 ``` import numpy as np # 计算平均收益率和协方差矩阵 mean_returns = np.mean(returns, axis=0) cov_matrix = np.cov(returns.T) ``` 然后,我们可以使用scipy库中的minimize函数来进行投资组合优化。我们需要定义一个目标函数,该函数将投资组合的权重作为输入,并返回投资组合的风险和收益率。我们的目标是最小化投资组合的风险。 ``` from scipy.optimize import minimize # 定义目标函数 def portfolio_return(weights, mean_returns): return np.sum(mean_returns * weights) def portfolio_volatility(weights, cov_matrix): return np.sqrt(np.dot(weights.T, np.dot(cov_matrix, weights))) def portfolio_optimization(mean_returns, cov_matrix, target_return): num_assets = len(mean_returns) args = (mean_returns,) constraints = ({'type': 'eq', 'fun': lambda x: portfolio_return(x, mean_returns) - target_return}, {'type': 'eq', 'fun': lambda x: np.sum(x) - 1}) bounds = tuple((0, 1) for _ in range(num_assets)) result = minimize(portfolio_volatility, num_assets*[1./num_assets,], args=args, method='SLSQP', bounds=bounds, constraints=constraints) return result.x ``` 最后,我们可以使用matplotlib库来绘制Markowitz有效边界图。我们需要在目标收益率范围内计算所有可能的投资组合,并绘制它们的风险和收益率。 ``` import matplotlib.pyplot as plt # 计算有效边界 target_returns = np.linspace(0.0, 0.2, 50) target_volatilities = [] for target_return in target_returns: weights = portfolio_optimization(mean_returns, cov_matrix, target_return) target_volatilities.append(portfolio_volatility(weights, cov_matrix)) # 绘制有效边界图 plt.figure(figsize=(10, 6)) plt.scatter(target_volatilities, target_returns, c=target_returns / target_volatilities, marker='o') plt.xlabel('Volatility') plt.ylabel('Expected Return') plt.colorbar(label='Sharpe ratio') plt.show() ``` 这样,我们就实现了Markowitz有效边界和投资组合优化基于Python的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值